db2 在一储存过程得到另一储存过程返回的结果集

 

1.创建被调用的储存过程,该储存过程返回一结果集:    

CREATE   PROCEDURE  call_Proc1() 
    LANGUAGE SQL 
    result sets 
1
-- ---------------------------------------------------------------------- 
--
 SQL 存储过程  
--
---------------------------------------------------------------------- 
P1:  BEGIN  
        
declare  c1  cursor    with   return   to  caller  for   
            
select   SCORE 
            
from     T_USER; 
         
open  c1; 
END  P1  

2.测试储存过程:

  drop   PROCEDURE  Proc2;
 
CREATE   PROCEDURE  Proc2 ( 
   out out_market_code 
integer
  ) 
    LANGUAGE SQL 
-- ---------------------------------------------------------------------- 
--
 SQL 存储过程  
--
---------------------------------------------------------------------- 
P1:  BEGIN   
-- 建立一个结果集数组
declare  loc1,loc2 result_set_locator  varying
declare  i  integer ;
declare  temp_ch  integer ;
-- 调用该SP返回结果集。
call call_Proc1; 
 
-- 将返回结果集和结果集数组关联 
associate result  set  locator(loc1)  with   procedure  call_Proc1; 
-- 将结果集数组分配给cursor 
allocate cursor1  cursor   for  result  set  loc1;  set  i  =   2 ;
-- 取结果集中的数据,这里假定表 T_USER中至少有两条数据;用于调试,可以查看 call_Proc1中返回的结果集中的数据
fetch   cursor1  into  temp_ch; 
WHILE  i > 0  DO
   
set  out_market_code  =  temp_ch;
  
set  i  =  i - 1 ;
  
fetch   cursor1  into  temp_ch; 
end   while
close  cursor1;          
END  P1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值