2009-12-29 7 views
21

Dove posso trovare un elenco completo di tutte le eccezioni predefinite di Oracle pl/SQL?Dove posso trovare un elenco completo di eccezioni predefinite di Oracle pl/SQL?

In questo link ho trovato questo elenco, ci sono più?

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

risposta

21

Questi sono per 11gR2, una scansione rapida dice che sono sempre gli stessi: http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10472/errors.htm#BABHDGGG

Questo da $ ORACLE_HOME /rdbms/admin/stdspec.sql (buon punto dal pacchetto standard Egorius è il posto giusto per cercare la risposta)

 /********** Predefined exceptions **********/ 

    CURSOR_ALREADY_OPEN exception; 
    pragma EXCEPTION_INIT(CURSOR_ALREADY_OPEN, '-6511'); 

    DUP_VAL_ON_INDEX exception; 
    pragma EXCEPTION_INIT(DUP_VAL_ON_INDEX, '-0001'); 

    TIMEOUT_ON_RESOURCE exception; 
    pragma EXCEPTION_INIT(TIMEOUT_ON_RESOURCE, '-0051'); 

    INVALID_CURSOR exception; 
    pragma EXCEPTION_INIT(INVALID_CURSOR, '-1001'); 

    NOT_LOGGED_ON exception; 
    pragma EXCEPTION_INIT(NOT_LOGGED_ON, '-1012'); 

    LOGIN_DENIED exception; 
    pragma EXCEPTION_INIT(LOGIN_DENIED, '-1017'); 

    NO_DATA_FOUND exception; 
    pragma EXCEPTION_INIT(NO_DATA_FOUND, 100); 

    ZERO_DIVIDE exception; 
    pragma EXCEPTION_INIT(ZERO_DIVIDE, '-1476'); 

    INVALID_NUMBER exception; 
    pragma EXCEPTION_INIT(INVALID_NUMBER, '-1722'); 

    TOO_MANY_ROWS exception; 
    pragma EXCEPTION_INIT(TOO_MANY_ROWS, '-1422'); 

    STORAGE_ERROR exception; 
    pragma EXCEPTION_INIT(STORAGE_ERROR, '-6500'); 

    PROGRAM_ERROR exception; 
    pragma EXCEPTION_INIT(PROGRAM_ERROR, '-6501'); 

    VALUE_ERROR exception; 
    pragma EXCEPTION_INIT(VALUE_ERROR, '-6502'); 

    ACCESS_INTO_NULL exception; 
    pragma EXCEPTION_INIT(ACCESS_INTO_NULL, '-6530'); 

    COLLECTION_IS_NULL exception; 
    pragma EXCEPTION_INIT(COLLECTION_IS_NULL , '-6531'); 

    SUBSCRIPT_OUTSIDE_LIMIT exception; 
    pragma EXCEPTION_INIT(SUBSCRIPT_OUTSIDE_LIMIT,'-6532'); 

    SUBSCRIPT_BEYOND_COUNT exception; 
    pragma EXCEPTION_INIT(SUBSCRIPT_BEYOND_COUNT ,'-6533'); 

    -- exception for ref cursors 
    ROWTYPE_MISMATCH exception; 
    pragma EXCEPTION_INIT(ROWTYPE_MISMATCH, '-6504'); 

    SYS_INVALID_ROWID EXCEPTION; 
    PRAGMA EXCEPTION_INIT(SYS_INVALID_ROWID, '-1410'); 

    -- The object instance i.e. SELF is null 
    SELF_IS_NULL exception; 
    pragma EXCEPTION_INIT(SELF_IS_NULL, '-30625'); 

    CASE_NOT_FOUND exception; 
    pragma EXCEPTION_INIT(CASE_NOT_FOUND, '-6592'); 

    -- Added for USERENV enhancement, bug 1622213. 
    USERENV_COMMITSCN_ERROR exception; 
    pragma EXCEPTION_INIT(USERENV_COMMITSCN_ERROR, '-1725'); 

    -- Parallel and pipelined support 
    NO_DATA_NEEDED exception; 
    pragma EXCEPTION_INIT(NO_DATA_NEEDED, '-6548'); 
    -- End of 8.2 parallel and pipelined support 

    /********** Add new exceptions here **********/ 
+0

vedere questo link per un elenco di eccezioni predefinite per Oracle 9.2: http: //docs.oracle.com/cd/B10500_01/appdev. 920/a96624/07_errs.htm # 784 – Jakob

6

eccezioni predefinite sono dichiarate nel pacchetto SYS.STANDARD, vi sarete sicuramente trovare tutti.

Sul mio 9.2.0.7 ho trovato uno non è nella lista:

USERENV_COMMITSCN_ERROR exception; 
pragma EXCEPTION_INIT(USERENV_COMMITSCN_ERROR, '-1725'); 
+0

si prega di come accedere al SYS.STANDARD package' '? Ho provato ad accedere all'account 'sys' come' sysdba' e navigare nei pacchetti ma non trovare nulla – sam

0

Oltre alla tua domanda: qual è il nome di eccezione, quando compare l'errore ORA-03135: connection lost contact. Come posso gestirlo?

La soluzione è quello di definire una nuova eccezione e associarlo a un codice di errore:

exception connection_error; 
pragma exception_init(connection_error, -3135); 

... 

exception 
    when connection_error then 
     ... 

http://download-west.oracle.com/docs/cd/B19306_01/appdev.102/b14261/exceptioninit_pragma.htm

+0

vedere questo collegamento per la sintassi corretta e l'esame di lavoro: http://docs.oracle.com/cd/B10500_01/appdev.920/a96624/07_errs.htm#877 – Jakob

-2
No_data_found  ora-01403 
too_many_rows  ora-1422 
zero_divide   ora-1476 
dup_val_on_index  ora-00001 
invalid_cursor  ora-1001 
cursor already_open ora-06511 
invalid_number  ora-01722 
value_error   ora-06502 
ACCESS_INTO_NULL  ORA-06530 
CASE_NOT_FOUND  ORA-06592 
COLLECTION_IS_NULL ORA-06531 
+1

tutte queste eccezioni sono già nella domanda – Origin