IQ中存储过程传递OUTPUT参数的方法

2755阅读 0评论2012-11-21 lion_sybiq_127
分类:Sybase

   在本文中将向大家介绍,在进行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)
 
上一篇:在IQ数据库中如何不加用户名前缀访问其他用户创建的表
下一篇:Linux上映射IQ使用的裸设备的方法_1(SUSE Linux)