Oracle PL/SQL开发基础(第三十二弹:SQLCODE和SQLERRM)

尽管一个异常在同一时刻只能抛出一次,但是实际上错误的消息文本可能包含来自多个异常的消息,这是因为异常具有传递性。在OTHERS处理器中处理异常时,有几种方法可以得到错误信息栈中的错误消息,其中最常用的是SQLCODE和SQLERRM。

SQLCODE函数返回当前的错误编码,对于用户自定义的异常,SQLCODE总是返回1;SQLERRM用于返回错误消息文本,对于自定义的异常,SQLERRM总是返回“User-defined Exception”。

用法如:

...
EXCEPTION
   WHEN OTHERS THEN
     DBMS_OUTPUT.PUT_LINE('错误编号:'||SQLCODE||' 错误消息:'||SQLERRM);   
END; 

SQLERRM函数还可以接受一个参数,如:

DBMS_OUTPUT.PUT_LINE(SQLERRM(0));  -- 这将返回:ORA-0000:normal,successful completion

要返回NO_DATA_FOUND的错误消息,可以传递错误号100,将返回ORA-01403错误,如SQLERRM(100)
大多数情况下使用不带参数的SQLERRM即可,不带参数的函数调用将返回完整的错误信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值