Oracle SQLCODE/SQLERRM


Oracle 内置函数 SQLCODE 和 SQLERRM 是特别用在 OTHERS 处理器中,分别用来返回 Oracle 的错误代码和错误消息。

OTHERS 处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的 Oracle 异常,所以在程序的最外层使用一个 OTHERS 处理器的话,将可以确保所有的错误都会被检测到。

在一个内在的异常中, SQLCODE 返回 Oracle 错误的序号,而 SQLERRM 返回的是相应的错误消息,错误消息首先显示的是错误代码。 SQLCODE 返回的是负数,除非 Oracle 的错误为“ ORA-01403 : NO DATA FOUND ”(译: ORA-01403 :未找到数据),当 Oracle 错误为“ ORA-01403 : NO DATA FOUND ”时,其对应的 SQLCODE 为 +100 。对于用户自定义的异常, SQLCODE 返回的是 +1 ,而 SQLERRM 返回的是 User-Defined Exception 。

一个 Oracle 的错误消息最多只能包含 512 个字节的错误代码。如果没有异常被触发,则 SQLCODE 返回 0 , SQLERRM 返回“ ORA-0000 : normal, successful completion ”。

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus