我正在编写oracle触发器,我有一些错误消息。
我使用此代码处理错误:
raise_application_error(-20001, 'error message, please do not this');
但这显示了很多信息; 例如: ora-20001:<>。 ora-06512:at<>,第100行
我只想显示错误消息正文:"错误消息,请不要这样"
有办法做到这一点吗?
答案 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;
将输出:
<块引用>这是一个错误