我正在編寫IBM i 5 V7R1上的SQL過程。 如果我想在for循環之後返回結果集,我無法創建該過程。 下面是代碼:DB2過程在for循環後返回結果集
create or replace procedure test1()
DYNAMIC RESULT SETS 1
LANGUAGE SQL
SPECIFIC EDVVAEH1.test1
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
SET OPTION ALWBLK = *ALLREAD ,
ALWCPYDTA = *OPTIMIZE ,
COMMIT = *NONE ,
DECRESULT = (31, 31, 00) ,
DFTRDBCOL = *NONE ,
DYNDFTCOL = *NO ,
DYNUSRPRF = *USER ,
SRTSEQ = *HEX
proc: BEGIN
DECLARE x VARCHAR(255);
DECLARE return_cur CURSOR with return FOR
select * from sysibm.sysdummy1;
loop1: for record as C1 cursor for
SELECT TABLE_NAME
from qsys2.systables
DO
SET x = record.table_name;
END FOR loop1;
open return_cur;
END proc
作爲選項定義,我想回到這兩個循環後的結果集,但它不會讓我創建這個程序。
的錯誤是-104令牌:「聲明的終結」是無效的,但一切都在那裏:(
我建議查看SQL語法... [DB2 for i SQL Reference 7.1](http://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_71/db2/rbafzintro.htm) – Charles
我花了小時閱讀此... – ChaosGramer
你是如何運行該聲明?當我運行您在iNav'運行SQL腳本'中提供的內容時,我得到的唯一錯誤是關於「X」的缺失聲明。如果我爲X添加DECLARE,它會創建好。 – user2338816