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>