【问题标题】:Raise_application_error in SQL developerSQL 开发人员中的 Raise_application_error
【发布时间】:2018-09-13 03:05:31
【问题描述】:

我使用的是 SQL Developer 版本 17.2.0.188。当我编译代码时,会导致一些错误,例如 开始 raise_application_error(-20001, 'xxxxx'); 结束;

我在脚本输出中看到错误消息(如 dbms_output),但我想在新窗口中看到它,类似于声明一些绑定变量时: variable_name number := &value; 有人可以告诉我在 SQL Developer 中的哪个位置可以更改设置以使此窗口可见吗?

我在此版本的 SQL 开发人员中没有选项: 工具 -> 首选项 -> 用户界面 -> 选项 -> DSA 对话框...

最好的问候,德克。

【问题讨论】:

  • 你搜索过吗?
  • "但是我想在一个新窗口中看到它,类似于声明一些绑定变量时:" - 你想要一个带有错误文本的弹出对话框吗?
  • 没错。它即将弹出。当然,我搜索了,但我没有找到解决方案。
  • 不太可能我在这个版本的 sql developer 中没有“用户界面”选项。
  • @LukeWoodward - 公平地说,OP 通过标记问题 [plsqldeveloper] 而不是 [oracle-sqldeveloper] 导致了混乱(尽管 Horseman 已经编辑了标签)。

标签: oracle plsql oracle-sqldeveloper raise application-error


【解决方案1】:

Oracle SQL Developer 不能以这种方式工作。错误消息将写入脚本输出或查询结果面板,具体取决于您的代码是分别通过 F5 还是 F9 执行的。

PL/SQL 编译器警告和错误被写入日志 - 编译器面板。

create or replace procedure xyz123 is
begin
 null
end;
/

show errors

此外,如果您想查看包含的 DBMS_OUTPUT,请设置 SERVEROUTPUT ON。它将被写入脚本输出面板。

现在,关于引发异常,这仍然发生在 PL/SQL 块中,我们仍然会通过 F5(脚本输出)执行。

(Code borrowed from SO answer)

DECLARE
    ex_custom EXCEPTION;
    PRAGMA exception_init ( ex_custom,-20001 );
BEGIN
    raise_application_error(
        -20001,
        'This is a custom error'
    );
EXCEPTION
    WHEN ex_custom THEN
        dbms_output.put_line(sqlerrm);
END;

按 F5 执行,然后...

【讨论】:

  • 在我的工作中,我使用的是 SQL Developer 版本 1.5.5,并且错误弹出是可见的。
  • 1.5.5 12岁左右...该升级了
  • 我是否理解在新版本的 SQL Developer 中无法实现此功能?有点奇怪,因为很难将此消息与 dbms_output 区分开来,尤其是当错误导致某些触发时..
  • @Derk 我刚刚也尝试了 2.1 版,从 2010 年开始。它的运行方式与今天相同。至于捕获异常,将它们记录到表中是一种常见的最佳实践,如oracle.com/technetwork/issue-archive/2012/12-mar/… 所述。如果您通过 SQL*Plus、SQLcl、SQL Developer 在脚本中运行此代码,那么写入 DBMS_OUTPUT 可能是可以的
  • thatjeffsmith 当我犯了同样的语法错误时,这与情况有关。然后我不想问我是什么触发还是我的错误。“它的操作和今天一样。”你能告诉我在点击执行脚本后我应该在设置中更改什么以查看弹出窗口吗?最好的问候
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 2022-07-19
相关资源
最近更新 更多