Oracle异常之自定义异常

您所在的位置:网站首页 oracle中raise Oracle异常之自定义异常

Oracle异常之自定义异常

#Oracle异常之自定义异常| 来源: 网络整理| 查看: 265

自定义异常:

如果想在某个特定事件发生时向应用程序的用于发出一些警告信息.而事件本身不会抛出Oracle内部异常,这个异常属于应用程序的特定异常.那么就需要自定义异常.

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

 

自定义异常处理步骤:

1.在pl/sql块的声明部分定义异常情况:

exception

2.raise

3.在pl/sql块的异常处理部分对异常情况做出相应的处理.

 

实例:

declare v_empno emp.empno%type := &empno; --1.声明异常 e_no_result exception; begin update emp set sal = sal + 100 where empno = v_empno; if sql%notfound then --2.raise手工触发异常 raise e_no_result; else commit; end if; exception --3.对异常做出处理 when e_no_result then dbms_output.put_line('数据更新失败'); when others then dbms_output.put_line('其他错误'); end;

当输入员工编号为 1234时,是没有这个员工的,更新操作失败.进入自定义异常处理部分.

结果为:

 

sql代码解读:

SQL%NOTFOUND 是一个布尔值。与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true。否则返回false。这样的语句在实际应用中,是非常有用的。例如要update一行数据时,如果没有找到,就可以作相应操作。

 

SQL%FOUND 的用法与sql%notfound用法相反,也是与最近的sql语句发生交互,如果影响行数大于0条,则为true

否则为false。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3