在本文中将向大家介绍,在进行IQ开发时如何为存储过程定义输出参数,以及如何获得输出参数值的方法。下面结合一个例子加以说明(这个例子来自于客户的实例,并进行了一定修改)
1. 编写带有输出参数的存储过程
(1) 编写脚本文件test_proc.sql,其包括如下内容:
create procedure sp_p1(out @c1 int ,out @c2 char(20))
begin
set @c1=1;
set @c2='22';
end;
(2) 使用dbisql执行test_proc.sql创建存储过程
dbisql -c "uid=xxx;pwd=xxx" -host xxxx -port xxx -nogui test_proc.sql
2. 编写调用上述存储过程的脚本call_proc_1.sql(采用动态方法调用),脚本内容如下:
begin
declare @cc1 int;
declare @cc2 char(20);
execute immediate with result set on 'sp_p1 @cc1,@cc2'; --动态调用
select @cc1,@cc2;
end;
3. 执行call_proc_1.sql
dbisql -c "uid=xxx;pwd=xxx" -host xxxx -port xxx -nogui call_proc_1.sql
执行后输出如下:
@cc1 @cc2
--------------------------------
1 22
(1 rows)
4. 编写调用上述存储过程的脚本call_proc_2.sql(采用静态方法调用),脚本内容如下:
begin
declare @cc1 int;
declare @cc2 char(20);
call sp_p1(@cc1,@cc2);
select @cc1,@cc2;
end;
5. 执行call_proc_2.sql
dbisql -c "uid=xxx;pwd=xxx" -host xxxx -port xxx -nogui call_proc_2.sql
执行后输出如下(与静态方式相同):
@cc1 @cc2
--------------------------------
1 22
(1 rows)
阅读(2660) | 评论(0) | 转发(0) |