PL/SQL Identifiers


Identifiers are names for PL/SQL objects such as constants,variables, exceptions, procedures, cursors, and reserved words.

Identifiers have the following characteristics:
• Can be up to 30 characters in length
• Cannot include whitespace (space, tab, carriage return)
• Must start with a letter
• Can include a dollar sign ($), an underscore (_), and a
pound sign (#)
• Are not case-sensitive

You shouln't use the  PL/SQL’s reserved words as identifiers in your programs as this can result in compilation or runtime errors that are difficult to troubleshoot.

Predefined Exceptions

We discussed in the previous article (Expection Handling) that the exceptions can be either System pre-defined exceptions or User defined excpetions. Lets have a look on commonly used pre-defined exceptions with there error numbers:


Named Exception Error Number
DUP_VAL_ON_INDEX ORA-00001
TIMEOUT_ON_RESOURCE ORA-00051
TRANSACTION_BACKED_OUT ORA-00061
INVALID_CURSOR ORA-01001
NOT_LOGGED_ON ORA-01012
LOGIN_DENIED ORA-01017
NO_DATA_FOUND ORA-01403
SYS_INVALID_ROWID ORA-01410
TOO_MANY_ROWS ORA-01422
ZERO_DIVIDE ORA-01476
USERENV_COMMMITSCN_ERROR ORA-01725
INVALID_NUMBER ORA-01722
STORAGE_ERROR ORA-06500
PROGRAM_ERROR ORA-06501
VALUE_ERROR ORA-06502
ROWTYPE_MISMATCH ORA-06504
CURSOR_ALREADY_OPEN ORA-06511
ACCESS_INTO_NULL ORA-06530
COLLECTION_IS_NULL ORA-06531
SUBSCRIPT_OUTSIDE_LIMIT ORA-06532
SUBSCRIPT_BEYOND_COUNT ORA-06533
NO_DATA_NEEDED ORA-06548
CASE_NOT_FOUND ORA-06592
SELF_IS_NULL ORA-30625

 One type of exception can be defined once in a block but different type of exceptions can be raised in the same block. And nested blocks can be used to specify same exception to handle in different ways.
For Ex:
Syntax:
DECLARE
        Declaration section;
BEGIN
       Executable statements ;
EXCEPTION
    WHEN ex_name1 THEN
        Error handling statements;
   WHEN ex_name2 THEN
       Error handling statements ;
   WHEN Others THEN
       Error handling statements ;
END;