Oracle异常之自定义异常 |
您所在的位置:网站首页 › oracle中raise › Oracle异常之自定义异常 |
自定义异常: 如果想在某个特定事件发生时向应用程序的用于发出一些警告信息.而事件本身不会抛出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 |