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

db2 专栏收录该内容
5 篇文章 0 订阅

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 

该文仿照网上文章,测试通过,非原创! 

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值