Error message code and text : Handle Exception « PL SQL Programming « Oracle PL/SQL Tutorial





SQL> DECLARE
  2    e_TooManyEmployee EXCEPTION;  -- Exception to indicate an error condition
  3    v_ErrorCode NUMBER;           -- Variable to hold the error message code
  4    v_ErrorText VARCHAR2(200);    -- Variable to hold the error message text
  5
  6  BEGIN
  7    RAISE e_TooManyEmployee;
  8  EXCEPTION
  9    WHEN e_TooManyEmployee THEN
 10      DBMS_OUTPUT.put_line('e_TooManyEmployee');
 11      v_ErrorText := SUBSTR(SQLERRM, 1, 200);  -- Note the use of SUBSTR here.
 12      DBMS_OUTPUT.put_line(v_ErrorText);
 13    /* SQLERRM(0) */
 14    v_ErrorText := SUBSTR(SQLERRM(0), 1, 200);
 15    DBMS_OUTPUT.put_line(v_ErrorText);
 16
 17    /* SQLERRM(100) */
 18    v_ErrorText := SUBSTR(SQLERRM(100), 1, 200);
 19    DBMS_OUTPUT.put_line(v_ErrorText);
 20
 21    /* SQLERRM(10) */
 22    v_ErrorText := SUBSTR(SQLERRM(10), 1, 200);
 23    DBMS_OUTPUT.put_line(v_ErrorText);
 24
 25    /* SQLERRM with no argument */
 26    v_ErrorText := SUBSTR(SQLERRM, 1, 200);
 27    DBMS_OUTPUT.put_line(v_ErrorText);
 28
 29    /* SQLERRM(-1) */
 30    v_ErrorText := SUBSTR(SQLERRM(-1), 1, 200);
 31    DBMS_OUTPUT.put_line(v_ErrorText);
 32
 33    /* SQLERRM(-54) */
 34    v_ErrorText := SUBSTR(SQLERRM(-54), 1, 200);
 35    DBMS_OUTPUT.put_line(v_ErrorText);
 36
 37
 38    WHEN OTHERS THEN
 39      v_ErrorCode := SQLCODE;
 40  END;
 41  /
e_TooManyEmployee
User-Defined Exception
ORA-0000: normal, successful completion
ORA-01403: no data found
-10: non-ORACLE exception
User-Defined Exception
ORA-00001: unique constraint (.) violated
ORA-00054: resource busy and acquire with NOWAIT specified

PL/SQL procedure successfully completed.

SQL>










24.15.Handle Exception
24.15.1.Code with No Exception Handler
24.15.2.Code with Conditional Control to Avoid an Exception
24.15.3.Code with Explicit Handler for Predefined Exception
24.15.4.Handling an Unnamed Exception
24.15.5.Handling a custom exception
24.15.6.An example showing continuing program execution after handling exception
24.15.7.The OTHERS Exception Handler
24.15.8.Assigning a Name to Predefined Exception Code
24.15.9.Using SQLCODE for error code and SQLERRM for error message
24.15.10.Catch custom exception
24.15.11.Handling exceptions without halting the program
24.15.12.Select into statement with exception catch statement
24.15.13.Check OTHERS exception
24.15.14.Error message code and text
24.15.15.Using PRAGMA EXCEPTION_INIT
24.15.16.NO data found
24.15.17.TOO_MANY_ROWS Exception
24.15.18.Use a nested block to catch exceptions from singleton SELECT.