Oracle RAISE_APPLICATION_ERROR 应用
摘要:在本教程中,您将学习如何使用 raise_application_error 过程来发布自定义错误消息。
raise_application_error 过程简介
raise_application_error 过程允许您从代码块或存储程序中发布自定义错误。
通过使用此过程,您可以向调用方报告错误,而不是返回未处理的异常。
raise_application_error 的语法如下:
raise_application_error(
error_number,
message
[, {TRUE | FALSE}]
);
代码语言:PostgreSQL SQL 方言和 PL/pgSQL (pgsql)
在此语法中:
error_number 是范围为 -20999 到 -20000 的负整数。
message 是表示错误消息的字符串。其长度最多为 2048 字节。
如果第三个参数为 FALSE,则该错误将替换所有先前错误。如果为 TRUE,则该错误将添加到先前错误的堆栈中。
raise_application_error 属于 DBMS_STANDARD 包,因此无需对引用进行限定。
当 raise_application_error 过程执行时,Oracle 会立即停止当前代码块的执行。它还会撤销对 OUT 或 IN OUT 参数所做的所有更改。
请注意,对全局数据结构(如包变量)以及数据库对象(如表)所做的更改不会被回滚。因此,您必须显式执行 ROLLBACK 语句以撤销 DML 操作的影响。
Oracle raise_application_error 示例
让我们看看一些使用 raise_application_error 过程引发异常的示例。
此示例使用 raise_application_error 过程引发 ID 为 -20111 且消息为 ‘信用额度超限’ 的异常:
DECLARE
摘要:在本教程中,您将学习如何使用 raise_application_error 过程来发布自定义错误消息。
raise_application_error 过程简介
raise_application_error 过程允许您从代码块或存储程序中发布自定义错误。
通过使用此过程,您可以向调用方报告错误,而不是返回未处理的异常。
raise_application_error 的语法如下:
raise_application_error(
);
代码语言:PostgreSQL SQL 方言和 PL/pgSQL (pgsql)
在此语法中:
error_number 是范围为 -20999 到 -20000 的负整数。
message 是表示错误消息的字符串。其长度最多为 2048 字节。
如果第三个参数为 FALSE,则该错误将替换所有先前错误。如果为 TRUE,则该错误将添加到先前错误的堆栈中。
raise_application_error 属于 DBMS_STANDARD 包,因此无需对引用进行限定。
当 raise_application_error 过程执行时,Oracle 会立即停止当前代码块的执行。它还会撤销对 OUT 或 IN OUT 参数所做的所有更改。
请注意,对全局数据结构(如包变量)以及数据库对象(如表)所做的更改不会被回滚。因此,您必须显式执行 ROLLBACK 语句以撤销 DML 操作的影响。
Oracle raise_application_error 示例
让我们看看一些使用 raise_application_error 过程引发异常的示例。
此示例使用 raise_application_error 过程引发 ID 为 -20111 且消息为 ‘信用额度超限’ 的异常:
DECLARE
