我第一次尝试在Oracle SQL中使用事务功能,似乎无法找到一个好的解释。我知道开始一个新会话将开始一个新的交易。我也理解提交/回滚用于结束它。我想要做的是执行两个语句,如果我们中的任何一个失败,撤消他们可能做出的任何更改并继续执行。如何检查此情况并相应地发出提交或回滚?
答案 0 :(得分:16)
使用PL / SQL块并编写如下内容:
begin
statement_zero;
savepoint my_savepoint;
begin
-- if either of these fail, then exception section will be executed
statement_one;
statement_two;
exception
when others then
rollback to my_savepoint;
end;
statement_three;
commit;
end;
答案 1 :(得分:2)
除了一个很好的exaplample ObiWanKenobi提供了Oracle事务的详细解释,可以在Oracle Concepts指南的Chapter 4找到(我提供的链接是10.2,你可以找到适合你的版本的文档)也是Oracle网站)。我建议你阅读本章来了解Oracle如何处理事务管理,而整个doc对于Oracle DB的工作原理来说是非常好的信息。