Oracle SQL Developer:运行脚本,出现错误时继续

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 停止执行,导致补丁更新不完整。

我能做些什么?

Rob*_*dez 5

默认情况下,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指示脚本在发生错误时停止并退出执行。

参考可用的命令和选项

每当sql错误时