Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Function Procedure Packages
 

Exceptions in Subprograms

SQL> SQL> CREATE OR REPLACE PROCEDURE RaiseError (   2    p_Raise IN BOOLEAN := TRUE,   3    p_ParameterA OUT NUMBER) AS   4  BEGIN   5    p_ParameterA := 7;   6   7    IF p_Raise THEN   8      RAISE DUP_VAL_ON_INDEX;   9    ELSE  10      RETURN;  11    END IF;  12  END RaiseError;  13  / SP2-0804: Procedure created with compilation warnings SQL> DECLARE   2    v_TempVar NUMBER := 1;   3  BEGIN   4    DBMS_OUTPUT.put_line('Initial value');   5    RaiseError(FALSE, v_TempVar);   6   7    DBMS_OUTPUT.put_line('Value after successful call');   8   9    v_TempVar := 2;  10    DBMS_OUTPUT.put_line('Value before 2nd call');  11    RaiseError(TRUE, v_TempVar);  12  EXCEPTION  13    WHEN OTHERS THEN  14      DBMS_OUTPUT.put_line('Value after unsuccessful call');  15  END;  16  / Initial value Value after successful call Value before 2nd call Value after unsuccessful call PL/SQL procedure successfully completed. SQL>