PL/SQL预定义异常

Posted Archer_w

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL预定义异常相关的知识,希望对你有一定的参考价值。

预定义的异常

PL/SQL提供了许多预定义的异常,这些异常在程序违反任何数据库规则时执行。 例如,当SELECT INTO语句不返回任何行时,会引发预定义的异常NO_DATA_FOUND。下表列出了一些重要的预定义异常情况 -

异常Oracle错误代码SQLCODE描述
ACCESS_INTO_NULL 06530 -6530 当一个空对象被自动分配一个值时会引发它。
CASE_NOT_FOUND 06592 -6592 当没有选择CASE语句的WHEN子句中的任何选项时,会引发这个错误,并且没有ELSE子句。
COLLECTION_IS_NULL 06531 -6531 当程序尝试将EXISTS以外的集合方法应用于未初始化的嵌套表或varray时,或程序尝试将值分配给未初始化的嵌套表或varray的元素时,会引发此问题。
DUP_VAL_ON_INDEX 00001 -1 当尝试将重复值存储在具有唯一索引的列中时引发此错误。
INVALID_CURSOR 01001 -1001 当尝试进行不允许的游标操作(例如关闭未打开的游标)时会引发此错误。
INVALID_NUMBER 01722 -1722 当字符串转换为数字时失败,因为字符串不代表有效的数字。
LOGIN_DENIED 01017 -1017 当程序尝试使用无效的用户名或密码登录到数据库时引发。
NO_DATA_FOUND 01403 +100 SELECT INTO语句不返回任何行时会引发它。
NOT_LOGGED_ON 01012 -1012 当数据库调用没有连接到数据库时引发。
PROGRAM_ERROR 06501 -6501 当PL/SQL遇到内部问题时会引发。
ROWTYPE_MISMATCH 06504 -6504 当游标在具有不兼容数据类型的变量中获取值时引发。
SELF_IS_NULL 30625 -30625 当调用成员方法时引发,但对象类型的实例未初始化。
STORAGE_ERROR 06500 -6500 当PL/SQL用尽内存或内存已损坏时引发。
TOO_MANY_ROWS 01422 -1422 SELECT INTO语句返回多行时引发。
VALUE_ERROR 06502 -6502 当发生算术,转换,截断或者sizeconstraint错误时引发。
ZERO_DIVIDE 01476 1476 当尝试将数字除以零时引发。

以上是关于PL/SQL预定义异常的主要内容,如果未能解决你的问题,请参考以下文章

预定义的 ORACLE PL/SQL 异常在哪里?

PL/SQL预定义异常

PL/SQL 用户自定义异常操作实例

PL/SQL系统定义的异常操作实例讲解

PL/SQL练习自定义异常

PL/SQL 找不到数据异常处理