当前位置: 代码迷 >> Oracle开发 >> 请问 plsql中怎么显式的抛出错误?
  详细解决方案

请问 plsql中怎么显式的抛出错误?

热度:107   发布时间:2016-04-24 08:00:26.0
请教 plsql中如何显式的抛出异常??
RT,现在有一个需求,如果遇到某种条件的话,程序就需要跳转到某个已经定义的异常上去?
请问plsql中如何实现呢??感谢各位指点

------解决方案--------------------
oracle中,允许使用“RAISE_APPLICATION_ERROR”函数产生一个用户自定义的错误,使得事务进入异常处理
PROCEDURE RAISE_APPLICATION_ERROR( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);
error_number_in 之容许从 -20000 到 -20999 之间
在开发存储过程或者pl sql时,可以根据需要随时产生 SQL错误,并在事务中使用
exception语句处理指定错误号的后续工作
------解决方案--------------------
SQL code
SQL> CREATE OR REPLACE PROCEDURE pb IS  2    invalid_data EXCEPTION;  3    PRAGMA EXCEPTION_INIT(invalid_data, -20100);  4    v_sqlerrm VARCHAR2(2000);  5  BEGIN  6    IF TRUE THEN  7      RAISE_APPLICATION_ERROR(-20100, 'Invalid Registration');  8    END IF;  9  EXCEPTION 10    WHEN invalid_data THEN 11      v_sqlerrm := SQLERRM; 12      dbms_output.put_line(v_sqlerrm); 13  END; 14  /过程已创建。SQL> SQL> SET serveroutput ON;SQL> exec pb;ORA-20100: Invalid RegistrationPL/SQL 过程已成功完成。SQL>
  相关解决方案