如何在Oracle SQL中使用回滚/提交

时间:2010-10-11 17:27:54

标签: sql oracle transactions

我第一次尝试在Oracle SQL中使用事务功能,似乎无法找到一个好的解释。我知道开始一个新会话将开始一个新的交易。我也理解提交/回滚用于结束它。我想要做的是执行两个语句,如果我们中的任何一个失败,撤消他们可能做出的任何更改并继续执行。如何检查此情况并相应地发出提交或回滚?

2 个答案:

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

另见http://www.adp-gmbh.ch/ora/concepts/transaction.html

答案 1 :(得分:2)

除了一个很好的exaplample ObiWanKenobi提供了Oracle事务的详细解释,可以在Oracle Concepts指南的Chapter 4找到(我提供的链接是10.2,你可以找到适合你的版本的文档)也是Oracle网站)。我建议你阅读本章来了解Oracle如何处理事务管理,而整个doc对于Oracle DB的工作原理来说是非常好的信息。