ORACLE PL/SQL 例外处理

ORACLE   PL/SQL   例外处理 
1)   基本结构 
BEGIN 
...   --语句 
EXCEPTION   --   例外处理   
WHEN   ... 
... 
WHEN   OTHERS 
... 
END; 

2)   常用预定义例外 
EXCEPTION   
WHEN   CURSOR_ALREADY_OPEN   THEN   --   ORA-06511   SQLCODE   =   -6511   游标已经打开 
... 
WHEN   DUP_VAL_ON_INDEX   THEN   --   ORA-00001   SQLCODE   =   -1   向唯一索引中插入重复数据 
... 
WHEN   INVALID_CURSOR   THEN   --   ORA-01001   SQLCODE   =   -1001   非法游标操作 
... 
WHEN   INVALID_NUMBER   THEN   --   ORA-01722   SQLCODE   =   -1722   字符向数字转换失败 
... 
WHEN   LOGIN_DENIED   THEN   --   ORA-01017   SQLCODE   =   -1017   
... 
WHEN   NO_DATA_FOUND   THEN   --   ORA-01403   SQLCODE   =   +100   没有找到数据 
... 
WHEN   NOT_LOGGED_ON   THEN   --   ORA-01012   SQLCODE   =   -1012   
... 
WHEN   PROGRAM_ERROR   THEN   --   ORA-06501   SQLCODE   =   -6501   程序错误 
... 
WHEN   STORAGE_ERROR   THEN   --   ORA-06500   SQLCODE   =   -6500   
... 
WHEN   TIMEOUT_ON_RESOURCE   THEN   --   ORA-00051   SQLCODE   =   -51 
... 
WHEN   TOO_MANY_ROWS   THEN   --   ORA-01422   SQLCODE   =   -1422   返回多行 
... 
WHEN   TRANSACTION_BACKED_OUT   THEN   --   ORA-00061   SQLCODE   =   -61 
... 
WHEN   VALUE_ERROR   THEN   --   ORA-06502   SQLCODE   =   -6502   数值转换错误 
... 
WHEN   ZERO_DIVIDE   THEN   --   ORA-01476   SQLCODE   =   -1476   被零除 
... 
WHEN   OTHERS   THEN   --   其它任何错误的处理 
... 
END; 

3)   用户定义的例外 
DECLARE 
FIND_DATA_EMP   EXCEPTION; 
BEGIN 
IF   ...   THEN 
RAISE   FIND_DATA_EMP; 
END   IF; 
EXCEPTION 
WHEN   LOB_NO_LOCKED   THEN 
... 
END; 
4)   EXCEPTION_INIT的使用 
PRAGMA   EXCEPTION_INIT(例外名,   ORACLE错误号); 
注:PRAGMA   是一个编译器命令,可以认为是对编译器的一个注释。 
例: 
DECLARE 
ZERO_DIVIDE1   EXCEPTION; 
PRAGMA   EXCEPTION_INIT(ZERO_DIVIDE1,   -1476); 
BEGIN 
... 
EXCEPTION 
WHEN   ZERO_DIVIDE1   THEN 
... 
END; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值