预定义说明的 oracle 异常
ORACLE 错误 异常信息 说明
ORA-0001 Dup_val_on_index 试图破坏一个唯一性限制
ORA-0051 Timeout-on-resource 在等待资源时发生超时
ORA-0061 Transaction-backed-out 由于发生死锁事务被撤消.
ORA-1001 Invalid-cursor 试图使用一个无效的光标
ORA-1012 Not-logged-on 没有连接到ORACLE
ORA-1017 Login-denied 无效的用户名/口令
ORA-1403 Not-data-found 没有找到数据
ORA-1422 Too-many-rows select into 返回多行
ORA-1476 Zero-divide 试图被零除
ORA-1722 Invalid-number 转换一个数字失败
ORA-6500 Storage-error 内存不够引发的内部错误
ORA-6501 Program-error 内部错误
ORA-6502 Value-error 转换或截断错误
ORA-6504 Rowtype-mismatch 缩主光标变量与 PL/SQL变量
有不兼容行类型
ORA-6511 Cursor-already-open 试图打开一个已存在的光标
ORA-6530 Access-into-null 试图为null 对象的属性赋值
ORA-6531 Collection-is-null 试图将Exists 以外的集合( collection)
方法应用于一个 null pl/sql 表上或varray上
ORA-6532 Subscript-outside-limit 对嵌套或varray索引的引用超出声明范围
以外
ORA-6533 Subscript-beyond-count 对嵌套或varray 索引得引用大于集合中
元素的个数.
可以使用RAISE_APPLICATION_ERROR 创建自己的错误处理。其语法如下:
RAISE_APPLICATION_ERROR(error_number,error_message,[keep_errors] ) ;
这里的error_number 是从 –20,000 到 –20,999 之间的参数,
error_message 是相应的提示信息(< 512 字节),
keep_errors 为可选,如果keep_errors =TRUE ,则新错误将被添加到已经引发的错误列表中。如果keep_errors=FALSE(缺省),则新错误将替换当前的错误列表
例: RAISE_APPLICATION_ERROR(-20001, p_Department || ' ' || p_Course || 'doesn't exist!');