如何在oracle中保存commit语句,直到执行所有脚本

时间:2013-10-29 08:41:28

标签: oracle commit rollback

我有10个脚本,每个脚本都包含它自己的commit语句。我正在使用我的工具同时执行所有脚本,这将要求数据库连接并读取我们的脚本并在我们的数据库中执行。

我需要在所有脚本中保存所有commit语句,如果任何脚本中的任何语句失败,它应该回滚所有先前的语句。

1 个答案:

答案 0 :(得分:7)

只需删除您的提交语句.. AND

SET AUTOCOMMIT OFF;
WHENEVER SQLERROR EXIT FAILURE ROLLBACK;

{script 1}
{script 2}
{script 3}
{script 4}
.
.
.
{script 10}

COMMIT;

DDL将在成功时隐含承诺。我们不会为DDL发出提交。您应该有一个On failure脚本来进行手动回滚。

例如:您创建两个表然后进行回滚

WHENEVER SQLERROR CONTINUE; 
DROP TABLE1; 
DROP TABLE2;