我目前正在IBM i 5 V7R1上编写SQL-Procedure。 如果我想在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令牌:“声明结束”无效,但一切都在那里:(
答案 0 :(得分:0)
我似乎找到了问题的根本原因,但我无法修复它。 据我所知,我的i Access与for语句有问题。 我在数据库开发视图中将语句复制到我的RDi 9.1并在那里运行它。我还设置了一个不同的语句结束命令,之后我就可以创建我的程序了。
现在我需要等到我公司的某个人可以为客户端访问提供PTF。我已经尝试安装随IBM i提供的所有PTF,但没有改进......
如果有人有想法,我可以在哪里下载PTF进行客户端访问,请给我一个提示。 IBM网站是不可能的,因为我没有注册IBM i。
感谢。