oracle如何捕获引发应用程序错误

标签 oracle plsql

如何为 raise_application_error 调用编写异常处理程序?我完全坚持下去。我知道如何引发和捕获自定义异常,但我不知道如何使用 raise_application_error 和其他 catch block 捕获错误,然后“当其他人”时。谢谢指点

最佳答案

类似这样的吗?

declare
    no_bananas_on_tuesday exception;
    pragma exception_init(no_bananas_on_tuesday, -20123);
begin
    raise_application_error(-20123, 'Bananas are not available on a Tuesday');
exception
    when no_bananas_on_tuesday then
        dbms_output.put_line('It''s Tuesday but user requested a banana.');
end;
  1. 上面的调用会生成 ORA-20123 错误。
  2. 我们定义了与代码 -20123 关联的自定义异常 no_bananas_on_tuesday
  3. 当发生 ORA-20123 异常时,我们可以使用 no_bananas_on_tuesday 异常处理程序捕获它。

关于oracle如何捕获引发应用程序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66070836/

相关文章:

python - 64位Oracle客户端库无法在mac中加载

plsql - 甲骨文 PL/SQL ORA-00937 "not a single-group group function"

arrays - 如何在PL/SQL函数中使用传递数组

oracle - PL/SQL : ORA-44201: cursor needs to be reparsed

sql - 了解Oracle别名-为什么除非包装在第二个查询中,否则在查询中为什么不能识别别名?

sql - 如何处理 pl/sql block 中的编译时异常?

php - 甲骨文、PDO_OCI 与 OCI8

oracle - ORA 01400 和 ORA 02296 : Cannot insert null or modify added column properties to NOT NULL

oracle - 在 sqlplus/Oracle 中将纪元转换为日期

java - oracle.sql.ArrayDescriptor.createDescriptor 中的 ClassCastException