許多發言中,我如何才能在同一個事務的許多聲明:在同一事務PLSQL
update .....;--s1
update .....;--s2
update .....;--s3
COMMIT;
如果發生在S2回滾S1的錯誤,如果發生在S3回滾S2和S1的錯誤;
許多發言中,我如何才能在同一個事務的許多聲明:在同一事務PLSQL
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;
無效語法的開始。請參閱@sylvainleroux的答案。 – user272735
@ user272735我修復了語法,我無法刪除答案,因爲它被接受。 – Donal
據我所知,在PL/SQL的語法正確異常的情況下回滾是:
begin
-- stmt1
-- stmt2
-- stmt3
commit;
exception
when others then -- <--
rollback;
end;
BTW沒有這樣在PL/SQL中作爲AUTOCOMMIT
。這是一個SQL * Plus命令。
儘管投票和OP已標記爲正確,但這仍是正確的答案。 – user272735
如果你正在使用'sqlplus'使用,必須使用'和'EXCEPTION'處理 – Exhausted
匿名block''每當SQLERROR rollback'在腳本 –
@a_horse_with_no_name不,我用蟾蜍爲Oracle –