Un exemple est donné ici pour générer une erreur d'application (raise_application_error) dans une procédure stockée PL/SQL si la condition donnée ne correspond pas. Le programme déclenchera une exception si la commission (comm) est nulle dans la table EMP pour un numéro d'employé donné (empno).
Raise_Application_Error dans l'exemple PL/SQL
CRÉER OU REMPLACER LA PROCÉDURE compute_sal (i_EMPNO IN emp.empno%TYPE)ISCURSOR c_emp (p_empno emp.empno%TYPE)ISSELECT sal, commFROM empWHERE empno =p_empno;v_sal NUMBER;v_comm NUMBER;BEGINOPEN c_emp (i_empno);FETCH c_empINTO v_sal, v_comm;CLOSE c_emp;IF v_comm IS NULLTHENraise_application_error (-20001, 'La commission est nulle.');END IF;DBMS_OUTPUT.put_line ('Le salaire total est :' || (v_sal + v_comm));END compute_sal;/Exécuter
SET SERVEROUTPUT ON ;BEGINCOPUTE_SAL(7369);END ;/Sortie
SQL> SET SERVEROUTPUT ON;SQL> BEGIN2 COMPUTE_SAL(7369);3 END;4 /BEGIN*ERROR at line 1:ORA-20001 :Commission is null.ORA-06512 :at "SCOTT.COMPUTE_SAL", ligne 16ORA -06512 :à la ligne 2Voir aussi :
- Rechercher le numéro de ligne d'erreur en PL/SQL
- Un exemple de déclencheur en cas d'erreur dans Oracle Forms
- Erreur guide d'installation de la base de données Oracle 12c