[英]How can I use COMMIT in stored procedure in DB2 LUW
CREATE TABLE T1(c1 varchar(10));
CREATE OR REPLACE PROCEDURE FOO()
BEGIN
FOR C AS WITH TT (C1) AS (VALUES (1) , (2) , (3)) SELECT C1 FROM TT
DO
INSERT INTO T1 VALUES ('aaa');
COMMIT;
END FOR;
END
@
执行此存储过程时,出现以下错误:
db2“调用foo()”
SQL0501N在FETCH语句或CLOSE语句中指定的游标未打开,或者在游标标量函数引用中的游标变量未打开。
如何为每个插入提交?
COMMIT
关闭所有未使用HOLD
选项声明的打开的游标,包括由FOR
语句隐式创建的游标。
这是您需要进行的更改:
FOR C AS cur1 CURSOR WITH HOLD FOR
WITH TT (C1) AS (VALUES (1) , (2) , (3)) SELECT C1 FROM TT
DO
INSERT INTO T1 VALUES ('aaa');
COMMIT;
END FOR;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.