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。

这也会将错误代码发送到您自己的日志记录的调用进程,因此如果您有一些协调器,它可以知道发生了什么。