CREATEPROCEDURE call_Proc1() LANGUAGE SQL result sets 1 ------------------------------------------------------------------------ -- SQL 存储过程 ------------------------------------------------------------------------ P1: BEGIN declare c1 cursorwithreturnto caller for select SCORE from T_USER; open c1; END P1
2.测试储存过程:
dropPROCEDURE Proc2; CREATEPROCEDURE 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) withprocedure call_Proc1; --将结果集数组分配给cursor allocate cursor1 cursorfor 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; endwhile; close cursor1; END P1