Mar*_*s L 1 oracle oracle-sqldeveloper oracle12c
我正在使用 SQL Developer 20.2 运行 Oracle 12c 数据库更新的批处理脚本。我将脚本文件拖放到编辑器窗口中,然后单击“运行脚本 (F5)”按钮。由于某种原因,如果脚本遇到错误(DDL 语句 - 没有显式抛出 PL/SQL 函数),程序就会停止。
例子:
drop sequence my_seq; -- sequence may not exist yet
create sequence my_seq
start with 1
increment by 1
minvalue 1
maxvalue 9999999999
cache 100
cycle;
Run Code Online (Sandbox Code Playgroud)
由于序列不存在,该drop语句可能会出错。SQL*Plus 忽略该错误并继续运行脚本,但 SQL Developer 停止执行,导致补丁更新不完整。
我能做些什么?
默认情况下,SqlDeveloper 在发现错误时停止。您可以使用以下命令更改该行为:
whenever sqlerror continue;
drop sequence my_seq; -- sequence may not exist yet, in case of error continue
-- then we want to stop in error
whenever sqlerror exit failure;
create sequence my_seq
start with 1
increment by 1
minvalue 1
maxvalue 9999999999
cache 100
cycle;
Run Code Online (Sandbox Code Playgroud)
例子
解释
whenever sqlerror continue指示脚本继续,无论可能发生什么错误whenever sqlerror exit failure指示脚本在发生错误时停止并退出执行。参考可用的命令和选项