许多Statement在同一个事务PLSQL中

时间:2014-12-31 08:50:08

标签: sql oracle plsql transactions toad

我如何在同一笔交易中发表许多声明:

update .....;--s1
update .....;--s2
update .....;--s3
COMMIT;

如果在s2回滚s1中发生错误,则在s3回滚s2和s1中发生错误;

2 个答案:

答案 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;