发布网友 发布时间:2022-04-22 08:34
共6个回答
懂视网 时间:2022-04-08 07:01
* * 执行返回一个输出参数,若干输入参数的存储过程 * 方法第一个参数为存储过程名称,第二个参数为存放输入参数的数组(按顺序存放),方法返回值为存储过程输出参数 */ public String execProcedureWithOutParam(final String procName,final String[] inParams){ String returnVal=(String)getJdbcTemplate().execute(new CallableStatementCreator() { public CallableStatement createCallableStatement(Connection con) throws SQLException { int procArgNum=inParams.length+1; String storedProc="{call "+procName+"("; for (int i = 0; i < procArgNum; i++) { if(i!=procArgNum-1){ storedProc+="?,"; }else { storedProc+="?"; } } storedProc+=")}"; CallableStatement cs=con.prepareCall(storedProc); for (int i = 1; i <=inParams.length; i++) { cs.setString(i, inParams[i-1]); } cs.registerOutParameter(inParams.length+1, java.sql.Types.VARCHAR); return cs; } },new CallableStatementCallback() { public Object doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException { cs.execute(); return cs.getString(inParams.length+1); } }); return returnVal; }
JdbcTemplate执行带输入参数和输出参数的存储过程
标签:
热心网友 时间:2022-04-08 04:09
1、首先我们需要打开SQL Server Managment管理工具,新建一个表。
2、然后在表中插入一些样例数据,如下图所示。
3、接下来我们在SQL Server Managment中右键单击可编程性,选择新建存储过程。
4、然后在SQL编写界面中编写如下图所示的SQL语句。
5、编写好存储过程,我们执行一下,就会在可编程性下面找到我们创建的存储过程。
6、最后我们通过exec调用一下存储过程,在调用的时候传入参数。
热心网友 时间:2022-04-08 05:27
1、创建存储过程,包含入参、出参,返回入参除以的数据;
create or replace procere test_proc(in_num number, out_num out number)
as
begin
out_num := in_num/2;
end;
2、调用该函数,进行测试;入参为10,可以发现返回值是5;
3、编写sql语句块,在语句块中调用存储过程;
declare
v1 number;
v2 number;
begin
test_proc(12, v2);
dbms_output.put_line(v2);
end;
4、执行该脚本,可以发现返回值为12/2=6;
热心网友 时间:2022-04-08 07:01
第一步:点击数据库下的“可编程性”,选择“存储过程”,点击鼠标右键,选择“新建存储过程”
第二步:在create PROCEDURE 后 输入存储过程的名字,紧跟着的就是定义存储过程的参数,接下来就可以去编写自己所需要组装的存储过程语句了
注意,怕写的不对,可以执行下,想验证sql语句是否正确,就使用print输出下
第三步:点击上面的执行,存储过程就写好了,要怎么调用呢,在sqlserver的语句查询框中,输入exec 存储过程名 参数,执行就可以了。
热心网友 时间:2022-04-08 08:53
create proc test(
@name varchar(25), --默认输入参数
@info varchar(50) out, --输出参数
)
as
select @info = @name + ', 你是个大骗子!!!'
热心网友 时间:2022-04-08 11:01
create proc p_test(@a int,@b int output)
as
set @b=@a+1
--以下为调用
declare @a int,@b int
select @a=1,@b=0
exec p_test @a,@b output
select @a,@b