我想知道是否可以在存储过程中重新返回结果集(打开的游标),这是我从之前的存储过程中收到的。
我们假设
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调用,因此我无法将第一个光标更改为返回客户端。
答案 0 :(得分:0)
当声明光标存在“返回客户”或“返回呼叫者”时,您可以选择使用“返回客户”