Oracle --异常处理

pl/sql有三种类型的异常错误
程序员

1. 预约义错误sql

oracle预约义的异常错误大约有24个,这种异常无需在程序中定义,由oracle自动将其引起。编程

ORA-1403  no_data_found  select into 没有找到数据oracle

ORA-1422  too_many_rows  select into  返回多行
函数

2.  非预约义错误code

预约义以外其它标准的oracle错误,这种异常状况须要在程序中定义,由oracle自动将其引起。orm

2.1 在pl/sql块的定义部分定义异常状况io

用户定义的异常错误是经过显示使用raise语句来触发。当引起一个异常错误时,控制就转向到exception块异常错误部分,执行错误处理代码。class

3. 用户定义错误select

程序执行过程当中,出现编程人员认为的非正常状况,这种异常状况须要程序员在程序中定义,而后显示的在程序中将其引起。

<异常名称>  exception;

declare
        no_result exception;
begin
        --sql语句
        if sql%notfound then
            raise no_result;                                 
exception
        when no_result then
                dbms_output.put_line('没有结果异常')
end;

4.  在pl/sql中使用sqlcode、sqlerrm

为了获得完整的错误信息提示,咱们能够使用sqlerrm和substr函数一块儿获得错误提示信息。

sqlcode  返回错误代码数字

sqlerrm  返回错误信息

eg:

sqlcode = -100  -->sqlerrm='no_data-found'

sqlcode = 0    -->sqlerrm='normal,successful completion'

相关文章
相关标签/搜索