在触发器中如何将错误消息返回至应用程序(二)

来源:互联网 发布:js 引用时间戳 编辑:程序博客网 时间:2024/06/01 07:22

PS:前面发了一篇使用RAISERROR函数来返回消息,其实也可以用RAISE_APPLICATION_ERROR ,其实看名字也可以猜到了七八分,前者是通过行的,即可以把消息返回到服务端,客户端,甚至终止客户端连接。而后者就只是把错误消息返回客户端。不会进行其他操作,因此我们通常使用RAISE_APPLICATION_ERROR 就可以了

在实际的应用中,常常需要把异常信息返回给调用的客户端。
其实 RAISE_APPLICATION_ERROR 是将应用程序专有的错误从服务器端转达到客户端应用程序(其他机器上的SQLPLUS或者其他前台开发语言)
raise_application_error(异常类型,传递信息)
异常类型:number() 值域:-20000 到-20999
传递信息:varchar2(2000)
DBMS_STANDARD包的RAISE_APPLICATION_ERROR过程,可以重新定义异常错误消息,它为应用程序提供了一种与ORACLE交互的方法。语法如下
RAISE_APPLICATION_ERROR(errorNumber,errorString)
errorNumber是数值在-20000到-20999之间,errorString为自定义的错误信息。
如:
update jobs set job_title = v_newJobTitle where job_id = v_jobid;
if sql%notfound then
   RAISE_APPLICATION_ERROR(-20167,'update failure!');
end if;
..........
当在sqlpus中测试时,一旦没有要更新的行,则抛出这样的异常:
ORA-20167: update failure!


from:http://hi.baidu.com/htaozf/item/046489c5a96cb563f6c95d2d

原创粉丝点击