同一事务PLSQL中的多个语句

同一事务PLSQL中的多个语句,sql,oracle,plsql,transactions,toad,Sql,Oracle,Plsql,Transactions,Toad,如何在同一事务中生成多条语句: update .....;--s1 update .....;--s2 update .....;--s3 COMMIT; 如果s2回滚s1中出现错误,如果s3回滚s2和s1中出现错误 您可以这样做异常处理: BEGIN update .....;--s1 update .....;--s2 update .....;--s3 COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; END; 您可以

如何在同一事务中生成多条语句:

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

如果s2回滚s1中出现错误,如果s3回滚s2和s1中出现错误

您可以这样做异常处理:

BEGIN
  update .....;--s1
  update .....;--s2
  update .....;--s3
  COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   ROLLBACK;
END;

您可以像这样执行异常处理:

BEGIN
  update .....;--s1
  update .....;--s2
  update .....;--s3
  COMMIT;
EXCEPTION
   WHEN OTHERS THEN
   ROLLBACK;
END;

好的,PL/SQL中在异常情况下回滚的正确语法是:

begin
  -- stmt1
  -- stmt2
  -- stmt3
  commit;
exception
  when others then -- <--
    rollback;
end;
开始
--stmt1
--stmt2
--stmt3
犯罪
例外

当其他人--AFAIK时,PL/SQL中在异常情况下回滚的正确语法是:

begin
  -- stmt1
  -- stmt2
  -- stmt3
  commit;
exception
  when others then -- <--
    rollback;
end;
开始
--stmt1
--stmt2
--stmt3
犯罪
例外

当其他人使用时,如果您使用的是
sqlplus
use
,则必须将
匿名块
异常一起使用script@a_horse_with_no_name不,我使用Toad for Oracle您必须使用
匿名块
异常
处理使用
sqlplus
每当sqlerror回滚时,在script@a_horse_with_no_name不,我用Toad表示oracle无效语法。改为查看@sylvainleroux的答案。@user272735我已修复语法,无法删除答案,因为它已被接受。语法无效。改为查看@sylvainleroux的答案。@user272735我已修复语法,无法删除答案,因为答案已被接受。尽管投票结果和OP已标记为正确,但这是正确答案。尽管投票结果和OP已标记为正确,这是正确答案。