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'