lunes, 12 de septiembre de 2011

EXCEPCIONES PREDEFINIDAS

    PL/SQL proporciona un gran número de excepciones predefinidas que permiten controlar las condiciones de error más habituales.
    Las excepciones predefinidas no necesitan ser declaradas. Simplemente se utilizan cuando estas son lanzadas por algún error determinado.
    La siguiente es la lista de las excepciones predeterminadas por PL/SQL y una breve descripción de cuándo son accionadas:

Excepcion
Se ejecuta ...
SQLCODE
ACCESS_INTO_NULL
El programa intentó asignar valores a los atributos de un objeto no inicializado
-6530
COLLECTION_IS_NULL
El programa intentó asignar valores a una tabla anidada aún no inicializada
-6531
CURSOR_ALREADY_OPEN
El programa intentó abrir un cursor que ya se encontraba abierto. Recuerde que un cursor de ciclo FOR automáticamente lo abre y ello no se debe especificar con la sentencia OPEN
-6511
DUP_VAL_ON_INDEX
El programa intentó almacenar valores duplicados en una columna que se mantiene con restricción de integridad de un índice único (unique index)
-1
INVALID_CURSOR
El programa intentó efectuar una operación no válida sobre un cursor
-1001
INVALID_NUMBER
En una sentencia SQL, la conversión de una cadena de caracteres hacia un número falla cuando esa cadena no representa un número válido
-1722
LOGIN_DENIED
El programa intentó conectarse a Oracle con un nombre de usuario o password inválido
-1017
NO_DATA_FOUND
Una sentencia SELECT INTO no devolvió valores o el programa referenció un elemento no inicializado en una tabla indexada
100
NOT_LOGGED_ON
El programa efectuó una llamada a Oracle sin estar conectado
-1012
PROGRAM_ERROR
PL/SQL tiene un problema interno
-6501
ROWTYPE_MISMATCH
Los elementos de una asignación (el valor a asignar y la variable que lo contendrá) tienen tipos incompatibles. También se presenta este error cuando un parámetro pasado a un subprograma no es del tipo esperado
-6504
SELF_IS_NULL
El parámetro SELF (el primero que es pasado a un método MEMBER) es nulo
-30625
STORAGE_ERROR
La memoria se terminó o está corrupta
-6500
SUBSCRIPT_BEYOND_COUNT
El programa está tratando de referenciar un elemento de un arreglo indexado que se encuentra en una posición más grande que el número real de elementos de la colección
-6533
SUBSCRIPT_OUTSIDE_LIMIT
El programa está referenciando un elemento de un arreglo utilizando un número fuera del rango permitido (por ejemplo, el elemento “-1”)
-6532
SYS_INVALID_ROWID
La conversión de una cadena de caracteres hacia un tipo rowid falló porque la cadena no representa un número
-1410
TIMEOUT_ON_RESOURCE
Se excedió el tiempo máximo de espera por un recurso en Oracle
-51
TOO_MANY_ROWS
Una sentencia SELECT INTO devuelve más de una fila
-1422
VALUE_ERROR
Ocurrió un error aritmético, de conversión o truncamiento. Por ejemplo, sucede cuando se intenta calzar un valor muy grande dentro de una variable más pequeña
-6502
ZERO_DIVIDE
El programa intentó efectuar una división por cero
-1476

No hay comentarios:

Publicar un comentario