我正在使用FORMAT_ERROR_BACKTRACE
函数,该函数仅打印带有软件包名称的行号。我想在此打印异常名称。
答案 0 :(得分:1)
通常将format_error_stack
与format_error_backtrace
一起使用。像这样的东西。
DECLARE
x INT;
BEGIN
x :='A';
EXCEPTION WHEN OTHERS THEN
dbms_output.put_line(SUBSTR( DBMS_UTILITY.format_error_stack
|| DBMS_UTILITY.format_error_backtrace, 1, 4000));
END;
/
结果
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at line 4
PL/SQL procedure successfully completed.
您也可以使用SQLERRM
来显示错误消息,但它是not recommended
更好的是,对于Oracle 12c及更高版本,UTL_CALL_STACK可以为您提供有关错误的详细信息,并且还具有更大的调试PL / SQL代码和错误处理的灵活性。