首页 > 解决方案 > 如何确保所有事务都已提交或回滚?

问题描述

我有一个 PL/SQL 过程,例如:

procedure MyProcedure() is 
begin 
    insert into table1 (field1, Field2) values ('value1','value2');

    -- do some staff

    insert into table2 (field1, Field2) values ('value1','value2');

    -- do some staff

    delete from table3 where id = xx;

    -- do some staff
end;

一些程序指令可能会失败,我想在所有指令之间保持一些连贯性。这意味着如果一条指令失败,我希望所有其他指令都回滚。所以要么一切都被执行,要么什么都不执行。

请问有谁知道该怎么做?

先感谢您。

干杯,

标签: oracleplsql

解决方案


最后做一个COMMIT;ROLLBACK;- 就是这样。当然,只有当您没有任何执行隐式 COMMIT 的命令时,您才会获得预期的行为,例如TRUNCATE TABLE ...


推荐阅读