Oracle - 如何在出现任何错误后停止脚本执行?
Oracle - how to stop script execution after any error?
例如,假设我们要在产品中执行以下脚本。
drop index idx_test1;
drop index idx_test2;
但是,在执行第一条指令后,我们得到错误:ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
。从这里我想停止所有后续指令。在 sqlplus 和 sqldeveloper/PL/SQL Developer 中有什么方法可以做到吗?
我会推荐使用 Sql*Plus 的 运行 个脚本。你会用
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK
这可以是您的 glogin.sql
的一部分,也可以作为您的制作脚本的 header。
这也会将错误代码发送到您自己的日志记录的调用进程,因此如果您有一些协调器,它可以知道发生了什么。
例如,假设我们要在产品中执行以下脚本。
drop index idx_test1;
drop index idx_test2;
但是,在执行第一条指令后,我们得到错误:ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
。从这里我想停止所有后续指令。在 sqlplus 和 sqldeveloper/PL/SQL Developer 中有什么方法可以做到吗?
我会推荐使用 Sql*Plus 的 运行 个脚本。你会用
WHENEVER SQLERROR EXIT SQL.SQLCODE ROLLBACK
这可以是您的 glogin.sql
的一部分,也可以作为您的制作脚本的 header。
这也会将错误代码发送到您自己的日志记录的调用进程,因此如果您有一些协调器,它可以知道发生了什么。