我如何在同一笔交易中发表许多声明:
update .....;--s1
update .....;--s2
update .....;--s3
COMMIT;
如果在s2回滚s1中发生错误,则在s3回滚s2和s1中发生错误;
答案 0 :(得分:3)
AFAIK,PL / SQL中用于在异常情况下回滚的正确语法是:
begin
-- stmt1
-- stmt2
-- stmt3
commit;
exception
when others then -- <--
rollback;
end;
BTW在PL / SQL中没有AUTOCOMMIT
这样的东西。这是一个SQL * Plus命令。
答案 1 :(得分:2)
您可以像这样进行异常处理:
BEGIN
update .....;--s1
update .....;--s2
update .....;--s3
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
END;