Oracle --异常处理

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

1. 预定义错误

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

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

ORA-1422  too_many_rows  select into  返回多行

2.  非预定义错误

预定义之外其它标准的oracle错误,这种异常情况需要在程序中定义,由oracle自动将其引发。

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

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

3. 用户定义错误

程序执行过程中,出现编程人员认为的非正常情况,这种异常情况需要程序员在程序中定义,然后显示的在程序中将其引发。

<异常名称>  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'







你可能感兴趣的:(Oracle --异常处理)