首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

ORACLE-Function错误处理(EXCEPTION)

2012-08-30 
ORACLE--Function异常处理(EXCEPTION)存储过程在抛出异常的时候可以通过下面的代码,去获取异常并把异常UPD

ORACLE--Function异常处理(EXCEPTION)
存储过程在抛出异常的时候可以通过下面的代码,去获取异常并把异常UPDATE到某个字段内,方便在检查数据时,查看数据抛出的异常。

WHEN OTHERS THEN--ROLLBACK;--获取异常信息V_ERRCODE:= SQLCODE ;V_ERRMSG:= SUBSTR(SQLERRM , 1, 150);--同步存储过程出现错误 2 -- 同步失败UPDATE PRPDRATIONCLAUSEKINDTEMPSET STATUS = '2',ERRMSG = V_ERRMSG,ERRCODE = V_ERRCODEWHERE RATIONCODE = CCIC_RATION_DETAIL.RATIONCODEAND CLAUSECODE = CCIC_RATION_DETAIL.CLAUSECODEAND KINDCODE = CCIC_RATION_DETAIL.KINDCODE;COMMIT; 


ORACLE存储过程常见异常
ORA-04062: timestamp of procedure "CCICINS.P_DODUMP_CCICINS" has been changed
错误原因:两个存储过程在互相调用时,其中一个被调用的存储过程恰好刚编译,而调用方的存储过程还没有编译,这个时间点的数据,就抛出了这个异常。
解决方案:将调用方的存储过程重新编译,重新同步数据即可解决。

抛出异常的三种方式:
由三种方式抛出异常
1、通过PL/SQL运行时引擎 2、使用RAISE语句 3、调用RAISE_APPLICATION_ERROR存储过程 //抛出异常方式讲解1、当数据库或PL/SQL在运行时发生错误时,一个异常被PL/SQL运行时引擎自动抛出。2、异常也可以通过RAISE语句抛出,如:RAISE exception_name; 3、RAISE_APPLICATION_ERROR内建函数用于抛出一个异常并给异常赋予一个错误号以及错误信息(自定义异常的缺省错误号是+1,缺省信息是User_Defined_Exception)个人感觉前两个经常会用到,第三个好像不太常用。

部分内容来自:
http://blog.csdn.net/jojo52013145/article/details/6585833

热点排行