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 "call foo ()"
SQL0501N Курсор, указанный в операторе FETCH или операторе CLOSE, не являетсяopen или переменная курсора в ссылке на скалярную функцию курсора не открыта.
Как сделать коммит для каждой вставки?