如何只显示错误消息oracle引发应用程序错误

时间:2015-10-29 09:53:03

标签: oracle error-handling triggers oracle10g oracle-sqldeveloper

我正在编写oracle触发器,我有一些错误消息。

我使用此代码处理错误:

raise_application_error(-20001, 'error message, please do not this');

但这显示了很多信息; 例如:     ora-20001:<>。 ora-06512:at<>,第100行

我只想显示错误消息正文:"错误消息,请不要这样"

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:0)

您可以使用SQLERRM函数,该函数将返回异常编号和消息,不带行。没有只返回文本的功能,但您可以使用SQLCODE函数来执行此操作,就像this article中的第二个示例一样。

请记住,此数据主要用于帮助您应对调试,日志记录等方面的意外情况,因此大多数情况下您应该考虑将所有异常信息写入日志。

答案 1 :(得分:0)

由于我在 Google 搜索中发现这个问题非常高,这里有一个简单的方法来获取错误消息:

declare
  procedure test is
  begin
    raise_application_error(-20222, 'This is an error');
  end test;
begin
  test;
exception
  when others then
    dbms_output.put_line(replace(sqlerrm, 'ORA' || sqlcode || ': ', ''));
end;

将输出:

<块引用>

这是一个错误