sql - tipos - procedure oracle ejemplos
¿Dónde puedo encontrar una lista completa de las excepciones de Oracle pl/SQL predefinidas? (4)
¿Dónde puedo encontrar una lista completa de todas las excepciones de Oracle pl / SQL predefinidas?
En este link he encontrado esta lista, ¿hay más?
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
Además de su pregunta: ¿cuál es el nombre de la excepción, aparece cuando aparece ORA-03135: connection lost contact
error de ORA-03135: connection lost contact
? ¿Cómo puedo manejarlo?
La solución es definir una nueva excepción y asociarla con un código de error:
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
Estos son para 11gr2, un análisis rápido dice que siguen siendo los mismos: http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10472/errors.htm#BABHDGGG
Esto es de $ ORACLE_HOME / rdbms / admin / stdspec.sql (un buen punto del paquete estándar de egorius es el lugar para buscar la respuesta)
/********** 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 **********/
Las excepciones predefinidas se declaran en el paquete SYS.STANDARD, allí seguramente las encontrará todas.
En mi 9.2.0.7 encontré uno que no está en la lista:
USERENV_COMMITSCN_ERROR exception;
pragma EXCEPTION_INIT(USERENV_COMMITSCN_ERROR, ''-1725'');
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