RT,现在有一个需求,如果遇到某种条件的话,程序就需要跳转到某个已经定义的异常上去?
请问plsql中如何实现呢??感谢各位指点

解决方案 »

  1.   

    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语句处理指定错误号的后续工作
      

  2.   

    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>