oracle使⽤异常exception
异常
异常(exception)是⼀种PL/SQL标识符,它⽤于处理PL/SQL程序的运⾏错误。Oracle提供了预定义异常、⾮预定义异常和⾃定义异常等三种异常类型,其中预定义异常⽤于处理常见的Oracle错误,⾮预定义异常⽤于处理预定义异常所不能处理的Oracle错误,⾃定义异常⽤于处理与Oracle错误⽆关的其他情况。
1.语法
EXCEPTION
WHEN exception1 [] THEN
oracle游标的使用statement1;
statement2;
...
WHEN exception3 [ ] THEN
statement1;
statement2;
...
WHEN OTHERS THEN
statement1;
statement2;
...
2.预定义异常
2.1 说明
PL/SQL为开发⼈员提供了20多个预定义异常,每个预定义异常都对应⼀个Oracle错误。下⾯是常见的预定义异常:
(1)NO_DATA_FOUND :该异常对应于ORA-01403错误。当执⾏SELECT INTO未返回⾏,或者引⽤未初始化的PL/SQL表元素时,会隐含地触发该异常。
(2)TOO_MANY_ROWS :该异常对应于ORA-01422错误。当执⾏SELECT INTO语句时,如果返回超过⼀⾏,则会触发该异常。
(3)DUP_VAL_ON_INDEX :该异常对应于ORA-00001错误。当在惟⼀索引所对应的列上键⼊重复值时,会隐含触发该异常。
(4)ZERO_DIVIDE :该异常对应ORA-01476错误。如果使⽤数字值除0,则会隐含触发该异常。
(5)INVALID_CURSOR :该异常对应ORA-01001错误。当试图在不合法的游标上执⾏操作时,会隐含地触发该异常。例如,从未打开的游标提取数据或者关闭未打开的游标,则会触发该异常。
2.2 使⽤⽰例
3.⾮预定义异常
3.1 说明
当使⽤预定义异常时,只能处理21个Oracle错误。为了处理其他Oracle错误,必须使⽤⾮预定义异常。
使⽤步骤:
定义异常(e_integrity EXCEPTION)—>关联异常和错误(PRAGMA EXCEPTION_INIT(e_integrity,-2291))—>引⽤异常(WHEN e_integrity ;
3.2 使⽤⽰例
4.⾃定义异常
4.1 说明
⾃定义异常与Oracle错误没有任何关联,它是由开发⼈员为特定情况所定义的异常。
使⽤步骤:
定义异常(e_no_employee EXCEPTION)—>显式触发异常(RAISE e_no_employee)—>引⽤异常(WHEN e_no_employee ;
4.2 使⽤⽰例

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。