oracle异常所在行sqlerrm,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'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值