从接收的结果集(光标)返回SP中的结果集

时间:2014-06-23 22:21:27

标签: stored-procedures db2 sql-pl

我想知道是否可以在存储过程中重新返回结果集(打开的游标),这是我从之前的存储过程中收到的。

我们假设

 CREATE OR REPLACE PROCEDURE SP2 ()
   RESULT SET 1
 P_SP2: BEGIN
  DECLARE SENTENCE VARCHAR(128);
  DECLARE STMT STATEMENT;
  DECLARE CUR2 CURSOR
    WITH RETURN TO CALLER
    FOR RS;
  SET SENTENCE = 'SELECT CURRENT DATE FROM SYSIBM.SYSDUMMY1';
  PREPARE RS FROM SENTENCE;
  OPEN CUR2;
 END P_SP2@

 CREATE OR REPLACE PROCEDURE SP1 ()
   RESULT SET 1
 P_SP1: BEGIN
  DECLARE LOC1 RESULT_SET_LOCATOR VARYING;
  CALL SP2();
  ASSOCIATE RESULT SET LOCATORS (LOC1) WITH PROCEDURE SP2;
  ALLOCATE CUR1 CURSOR FOR RESULT SET LOC1;

  -- >>>>
  OPEN CUR1;
  -- <<<<

 END P_SP1 @

我不知道如何重新返回收到的结果集。我知道游标已经打开,但是在调用sp1时不会返回。

这些是内部sp调用,因此我无法将第一个光标更改为返回客户端。

1 个答案:

答案 0 :(得分:0)

当声明光标存在“返回客户”或“返回呼叫者”时,您可以选择使用“返回客户”