您的位置:首页 > 数据库 > Oracle

Oracle学习笔记(一)---PL/SQL(1)

2004-09-03 21:15 483 查看
今天Review一段别人写的PL/SQL代码,发现一点问题 。

简单点说,这个function里有一部分要实现这样一个功能:如果数据库表里记录已经存在就作Update,不存在就Insert一条新的记录。但是这段代码用了Exception来实现,如果Update不成功就抛出异常进而作Insert。

不过很显然,Update如果记录不存在是不会抛出异常的,经过试验也确实是没有。no_data_found只是在select语句没有返回数据的时候才会抛出。

以下是常见的Oracle异常错误:

错误号<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
异常错误信息名称
说明
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
da14

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 索引得引用大于集合中元素的个数.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息