新博客http://www.cnblogs.com/zhjh256 欢迎访问
分类: Oracle
2008-01-06 21:14:19
FORMAT_ERROR_STACK相对于SQLERRM
通常适合于使用DBMS_UTILITY.FORMAT_ERROR_STACK代替SQLERRM,因为SQLERRM仅限制返回255个字符,而DBMS_UTILITY.FORMAT_ERROR_STACK返回全部的文本描述。
如果需要提取给定错误码的错误消息,仍然需要使用SQLERRM,如下:
BEGIN
DBMS_OUTPUT.PUT_LINE (SQLERRM (-1855));
END;
/
SQLERRM仅接受错误码作为参数,默认为SQLCODE。DBMS_UTILITY.FORMAT_ERROR_STACK则仅返回默认SQLCODE制的错误消息。
在Oracle10g中,可以使用DBMS_UTILITY.FORMAT_ERROR_BACKTRACE,得到完整的行号,当错误被RAISE重新抛出时或者异常内又发生异常,错误行号将被重置。