--异常Exception
常见异常处理格式
declare
变量声明部分
begin
程序主体部分
Exception
when
exception1
then
...
when
exception2
then
...
end
;
DECLARE
a
NUMBER
:=
5
;
b
NUMBER
:=
0
;
c
NUMBER
;
BEGIN
c:= a/b;
EXCEPTION
WHEN
Zero_divide
THEN
dbms_output.put_line(
'divide by zero'
);
END
;
预定义说明的部分 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
No_data_found
SELECT
INTO
没有找到数据
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 索引得引用大于集合中元素的个数.
未完待续