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

问题描述 投票:1回答:1

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

我们假设

 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调用,因此我无法更改第一个光标以返回到客户端。

stored-procedures db2 sql-pl
1个回答
0
投票

当声明游标有“WITH RETURN TO CLIENT”或“WITH WITH RETURN TO CALLER”时,你可以选择使用“WITH RETURN TO CLIENT”

© www.soinside.com 2019 - 2024. All rights reserved.