ORACLE PL/SQL 的异常处理

上一篇 / 下一篇  2007-11-20 00:00:00 / 个人分类:Concepts&Basic

-ITPUB个人空间(aR4te{5B2kB_{

在整理我收藏过的一些文章,放在这里,供所有需要的人一起学习,

出自:http://www.itpub.net/371230.html

ORACLE PL/SQL 例外处理
"RQ rd`Mo \9u;N }&U01) 基本结构
"K:T;Q/d{0 BEGINITPUB个人空间7j6~2oo l;S%FN
... --语句ITPUB个人空间(Y5q/v2E1`IV
EXCEPTION -- 例外处理
0m^!Z)raJ#V0 WHEN ...ITPUB个人空间&my0n-VB6i)I%L/W
...ITPUB个人空间i#S8edY.Q%]!b
WHEN OTHERSITPUB个人空间/FnwhWzw
...ITPUB个人空间+|-?8d$d$k&A
END;
.C;K/a5W5ds/kqc)C0
0?h O.Zr L {02) 常用预定义例外
_!k].e:o;K;K J.f2?0 EXCEPTION
,D[a lWjA0 WHEN CURSOR_ALREADY_OPEN THEN -- ORA-06511 SQLCODE = -6511 游标已经打开ITPUB个人空间WW1a.m#y o4h R/Yz
...
3P!po?h `0 WHEN DUP_VAL_ON_INDEX THEN -- ORA-00001 SQLCODE = -1 向唯一索引中插入重复数据ITPUB个人空间4o~iZ|CsW
...
.X_a eqJ0 WHEN INVALID_CURSOR THEN -- ORA-01001 SQLCODE = -1001 非法游标操作ITPUB个人空间g's6j P(S5m;i
...
b TR.wZ3U0 WHEN INVALID_NUMBER THEN -- ORA-01722 SQLCODE = -1722 字符向数字转换失败ITPUB个人空间Dt+`I H}[;Fnb
...ITPUB个人空间,jf};Z)iF
WHEN LOGIN_DENIED THEN -- ORA-01017 SQLCODE = -1017
3CA:F;J&@E!faT[0 ...
)G{AEHCt0 WHEN NO_DATA_FOUND THEN -- ORA-01403 SQLCODE = +100 没有找到数据
6MH@(bd r0 ...
W9l0{g p^'D0 WHEN NOT_LOGGED_ON THEN -- ORA-01012 SQLCODE = -1012
je;tz$k0 ...
p(k6}I Z0 WHEN PROGRAM_ERROR THEN -- ORA-06501 SQLCODE = -6501 程序错误
&ncp@V0z#B2Q)v0 ...
"Gut,J eFtfK0 WHEN STORAGE_ERROR THEN -- ORA-06500 SQLCODE = -6500 ITPUB个人空间 d1Pp.zJ
...ITPUB个人空间:W0Jv?%i] o
WHEN TIMEOUT_ON_RESOURCE THEN -- ORA-00051 SQLCODE = -51ITPUB个人空间'yJCfg/zE_ \.w5X
...
!PO)vB%K/A6J B0 WHEN TOO_MANY_ROWS THEN -- ORA-01422 SQLCODE = -1422 返回多行ITPUB个人空间-^Hc@wj9j,Vh?-f W
...ITPUB个人空间&Y]|P_*q\2Si
WHEN TRANSACTION_BACKED_OUT THEN -- ORA-00061 SQLCODE = -61
o"b_4n7W!qo s m0 ...ITPUB个人空间 ]q"do%t7l
WHEN VALUE_ERROR THEN -- ORA-06502 SQLCODE = -6502 数值转换错误ITPUB个人空间5v1K3^6Ii@Q
...
y!g!Yc*\0 WHEN ZERO_DIVIDE THEN -- ORA-01476 SQLCODE = -1476 被零除
ms M!~k"zXcl0 ...ITPUB个人空间 v/g6kNm(Y4]t-hPb
WHEN OTHERS THEN -- 其它任何错误的处理
Jy @2w+N P%S|0 ...ITPUB个人空间 K*u2JwIbV
END;ITPUB个人空间Q5m_BX%?h(h_

&w p(phr03) 用户定义的例外ITPUB个人空间+G?i3Wt5V
DECLARE
Sf,B!@| q~0 FIND_DATA_EMP EXCEPTION;ITPUB个人空间Xjz3v2o*[,KF^Z
BEGINITPUB个人空间I|9U7QQ c
IF ... THEN
P2IG#K3f}0 RAISE FIND_DATA_EMP;
lJ$OY+D0 END IF;
{1G:Jo KN8x;A0 EXCEPTIONITPUB个人空间t8r`!RQ#B Z;DB5p
WHEN LOB_NO_LOCKED THEN
aoo d5`o0 ...ITPUB个人空间9BT L-}my
END;
/j$i bt'q04) EXCEPTION_INIT的使用ITPUB个人空间9Sh9{9e ge
PRAGMA EXCEPTION_INIT(例外名, ORACLE错误号);ITPUB个人空间lF6{%Csn
注:PRAGMA 是一个编译器命令,可以认为是对编译器的一个注释。ITPUB个人空间4l X*S3n3f(t6X$wh:o
例:ITPUB个人空间~6w t.?u2q+H;S
DECLARE
[GT i o L0 ZERO_DIVIDE1 EXCEPTION;
bgK'qF%U0 PRAGMA EXCEPTION_INIT(ZERO_DIVIDE1, -1476);
v ^iF,M0 BEGINITPUB个人空间 K&|v^0\S7wW
...ITPUB个人空间$P(^+j {;mf u5x*uT/p
EXCEPTION
{f:C^#F'^0 WHEN ZERO_DIVIDE1 THEN
*H(pn.EC0 ...ITPUB个人空间#gBl@%l#E
END;


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-01-16  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 38
  • 日志数: 630
  • 建立时间: 2007-12-21
  • 更新时间: 2008-01-15

RSS订阅

Open Toolbar