Oracle SQL 开发人员:运行 脚本,出现错误继续

Oracle SQL Developer: run script, continue on error

我正在使用 SQL Developer 20.2 到 运行 Oracle 12c 数据库更新的批处理脚本。我将脚本文件拖放到编辑器 window 中,然后点击按钮“运行 脚本 (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;

drop 语句可能会出错,因为序列不存在。 SQL*Plus 忽略该错误并继续 运行 脚本,但 SQL 开发人员停止执行导致补丁更新不完整。

我能做什么?

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;

示例

说明

  • whenever sqlerror continue 指示脚本无论发生什么错误都继续
  • whenever sqlerror exit failure 指示脚本在出现错误时停止并退出执行。

参考可用的命令和选项

whenever sqlerror

这不应该发生。默认情况下 SQL 开发人员运行编辑器的全部内容或您按 F5 时选择的任何内容。

drop sequence my_seq;  

create sequence my_seq
  start with 1
increment by 1
    minvalue 1
    maxvalue 9999999999
       cache 100
       cycle;

F5

您可以看到删除失败,但它会继续创建。一切尽在其中 'go'