Hier wird ein Beispiel gegeben, um einen Anwendungsfehler (raise_application_error) in einer gespeicherten PL/SQL-Prozedur auszulösen, wenn die bestimmte Bedingung nicht zutrifft. Das Programm löst eine Ausnahme aus, wenn die Provision (comm) in der EMP-Tabelle für die angegebene Mitarbeiternummer (empno) null ist.
Raise_Application_Error im PL/SQL-Beispiel
CREATE OR REPLACE PROCEDURE compute_sal (i_EMPNO IN emp.empno%TYPE) IS CURSOR c_emp (p_empno emp.empno%TYPE) IS SELECT sal, comm FROM emp WHERE empno = p_empno; v_sal NUMBER; v_comm NUMBER; BEGIN OPEN c_emp (i_empno); FETCH c_emp INTO v_sal, v_comm; CLOSE c_emp; IF v_comm IS NULL THEN raise_application_error (-20001, 'Commission is null.'); END IF; DBMS_OUTPUT.put_line ('Total salary is: ' || (v_sal + v_comm)); END compute_sal; /
Ausführen
SET SERVEROUTPUT ON; BEGIN COMPUTE_SAL(7369); END; /
Ausgabe
SQL> SET SERVEROUTPUT ON; SQL> BEGIN 2 COMPUTE_SAL(7369); 3 END; 4 / BEGIN * ERROR at line 1: ORA-20001: Commission is null. ORA-06512: at "SCOTT.COMPUTE_SAL", line 16 ORA-06512: at line 2
Siehe auch:
- Fehlerzeilennummer in PL/SQL finden
- Ein Beispiel für einen On-Error-Trigger in Oracle Forms
- Fehler bei der Installationsanleitung für die Oracle 12c-Datenbank