DB2过程在for循环后返回结果集

时间:2016-01-20 10:24:34

标签: sql stored-procedures db2 ibm-midrange

我目前正在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令牌:“声明结束”无效,但一切都在那里:(

1 个答案:

答案 0 :(得分:0)

我似乎找到了问题的根本原因,但我无法修复它。 据我所知,我的i Access与for语句有问题。 我在数据库开发视图中将语句复制到我的RDi 9.1并在那里运行它。我还设置了一个不同的语句结束命令,之后我就可以创建我的程序了。

现在我需要等到我公司的某个人可以为客户端访问提供PTF。我已经尝试安装随IBM i提供的所有PTF,但没有改进......

如果有人有想法,我可以在哪里下载PTF进行客户端访问,请给我一个提示。 IBM网站是不可能的,因为我没有注册IBM i。

感谢。