Oracle存储过程运行报ora-01002:提取违反顺序,代码如下:
for s in (sql1) loop
--------------------------第一处判断-------------
if 条件 then
OPEN PKG_RETURN FOR
SELECT 'error1' AS OUTPUT FROM DUAL;
ROLLBACK;
RETURN;
end if;
for i in (sql2) loop
-------------------------第二处判断
if 条件 then
ROLLBACK; ------第一处
OPEN PKG_RETURN FOR
SELECT 'error2' AS OUTPUT FROM DUAL;
--ROLLBACK; ---------------第二处
RETURN;
end if;
end loop;
end loop;
测试将Rollback放在第一处就没问题,放在第二处就报这个错;
但是在第一处判断时,Rollback放在后面也不会报错。