oracle pl/sql 将异常类型传递给函数
Posted
技术标签:
【中文标题】oracle pl/sql 将异常类型传递给函数【英文标题】:oracle pl/sql pass exception type to function 【发布时间】:2017-09-13 06:37:59 【问题描述】:我正在尝试找出是否有一种方法可以在不显式实现 when
子句中的所有 predefined Exceptions 的情况下获取异常类型。
我写了一个发送邮件的函数。我在 PL/SQL 过程的 when others
子句中调用此函数,有没有办法将类型作为 varchar 传递?
将异常消息也作为参数传递会非常出色。
问候
【问题讨论】:
docs.oracle.com/cloud/latest/db112/LNPLS/errors.htm#LNPLS848 谢谢,测试它并且工作正常。请给出答案 【参考方案1】:在 Oracle 文档中搜索:DBMS_UTILITY.FORMAT_ERROR_STACK
【讨论】:
【参考方案2】:有几种方法,我用SQLERRM
EXCEPTION
WHEN CANNOTPROCEED THEN
ORA_ERROR:=SQLERRM;
ROLLBACK;
insert into LOG_TABLE (LOG_ERROR) Values();
commit;
【讨论】:
【参考方案3】:正如Mat 在他的comment 中建议的那样,可以简单地使用变量SQLCODE
和SQLERRM
来检索异常。它本身并不检索异常的类型,但它确实提供了足够的信息来解决问题。 Oracle Documentation
【讨论】:
链接已失效。以上是关于oracle pl/sql 将异常类型传递给函数的主要内容,如果未能解决你的问题,请参考以下文章