DB2 Procedures return for 循环后的结果集
DB2 Procedures return result set after for loop
我目前正在 IBM i 5 V7R1 上编写 SQL-过程。
如果我想 return 我的 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
正如选项所定义的那样,我想 return 在两个循环之后生成一个结果集,但它不允许我创建此过程。
错误是 -104 标记:"End of Statement" 无效,但一切都在那里 :(
看来我找到了问题的根本原因,但我无法解决它。
据我所知,我的 i Access 的 for 语句有问题。
我在数据库开发视图中将该语句复制到我的 RDi 9.1 并在那里 运行。我还设置了一个不同的语句结束命令,之后我就可以创建我的过程了。
现在我需要等到我公司的人可以为我提供客户端访问的 PTF。我已经尝试安装 IBM i 随附的所有 PTF,但没有任何改进......
如果有人知道在哪里可以下载用于客户端访问的 PTF,请给我提示。 IBM 站点对我来说是不可能的,因为我没有注册 IBM i。
谢谢。
我目前正在 IBM i 5 V7R1 上编写 SQL-过程。 如果我想 return 我的 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
正如选项所定义的那样,我想 return 在两个循环之后生成一个结果集,但它不允许我创建此过程。
错误是 -104 标记:"End of Statement" 无效,但一切都在那里 :(
看来我找到了问题的根本原因,但我无法解决它。 据我所知,我的 i Access 的 for 语句有问题。 我在数据库开发视图中将该语句复制到我的 RDi 9.1 并在那里 运行。我还设置了一个不同的语句结束命令,之后我就可以创建我的过程了。
现在我需要等到我公司的人可以为我提供客户端访问的 PTF。我已经尝试安装 IBM i 随附的所有 PTF,但没有任何改进......
如果有人知道在哪里可以下载用于客户端访问的 PTF,请给我提示。 IBM 站点对我来说是不可能的,因为我没有注册 IBM i。
谢谢。