Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1620680
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2012-11-21 13:22:46

   在本文中将向大家介绍,在进行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)
 
阅读(2612) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~