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预定义异常的主要内容,如果未能解决你的问题,请参考以下文章