Está en la página 1de 16

MANEJO DE ERRORES EN

PL/SQL
Carlos Andrés Orjuela cañón
¿QUÉ SON LAS
EXCEPCIONES
DE PL/SQL?

Agregar un pie de página 2


TIPOS DE
EXCEPCIÓN.

Agregar un pie de página 3


 LAS EXCEPCIONES DEL
SISTEMA CON NOMBRE
excepciones del sistema se levantan
automáticamente por Oracle, cuando una
violación de las reglas de RDBMS. Hay algunas
excepciones del sistema que se plantean con
frecuencia, por lo que son predefinido y dado
un nombre en Oracle que se conocen como
excepciones del sistema con nombre.

Agregar un pie de página 4


 EXCEPCIONES DEL SISTEMA
SIN NOMBRE
Aquellos excepción del sistema para el que
Oracle no proporciona un nombre que se
conoce como sistema de excepción unamed.
Estos excepción no ocurren con frecuencia.
Estas excepciones tienen un código y un
mensaje asociado.

Agregar un pie de página 5


LAS EXCEPCIONES DEFINIDAS POR EL USUARIO
 
Aparte de excepciones Sytem podemos definir
explícitamente excepciones basadas en reglas de negocio.
Estos son conocidos como excepciones definidas por el
usuario.

Pasos a seguir para utilizar las excepciones definidas por el


usuario:
• Deben ser declaradas explícitamente en la sección de
declaración.
• Deben ser criados de manera explícita en la sección de
ejecución.
• Deben ser manejados por referencia al nombre de la
excepción definida por el usuario en la sección de excepción.

Agregar un pie de página 6


¿CÓ MO P OD E MOS
M ANEJAR LAS
E XCE P CI O N ES EN
PL/ SQL ?

Agregar un pie de página 7


Agregar un pie de página 8
Agregar un pie de página 9
Agregar un pie de página 10
EXCEPCIONES PREDEFINIDAS EN
PL/SQL

EXCEPCION SE EJECUTA ... SQLCODE


El programa intentó asignar valores a los atributos de un
ACCESS_INTO_NULL -6530
objeto no inicializado
El programa intentó asignar valores a una tabla anidada aún
COLLECTION_IS_NULL -6531
no inicializada
El programa intentó abrir un cursor que ya se encontraba
abierto. Recuerde que un cursor de ciclo FOR
CURSOR_ALREADY_OPEN -6511
automáticamente lo abre y ello no se debe especificar con la
sentencia OPEN

Agregar un pie de página 11


EXCEPCIONES PREDEFINIDAS EN
PL/SQL
EXCEPCION SE EJECUTA ... SQLCODE

El programa intentó almacenar valores duplicados en una columna


DUP_VAL_ON_INDEX que se mantiene con restricción de integridad de un índice único -1
(unique index)
El programa intentó efectuar una operación no válida sobre un
INVALID_CURSOR -1001
cursor
En una sentencia SQL, la conversión de una cadena de caracteres
INVALID_NUMBER hacia un número falla cuando esa cadena no representa un número -1722
válido
El programa intentó conectarse a Oracle con un nombre de usuario
LOGIN_DENIED -1017
o password inválido

Una sentencia SELECT INTO no devolvió valores o el programa


NO_DATA_FOUND 100
referenció un elemento no inicializado en una tabla indexada

NOT_LOGGED_ON El programa efectuó una llamada a Oracle sin estar conectado -1012
PROGRAM_ERROR PL/SQL tiene un problema interno -6501
Los elementos de una asignación (el valor a asignar y la variable
que lo contendrá) tienen tipos incompatibles. También se presenta
ROWTYPE_MISMATCH -6504
este error cuando un parámetro pasado a un subprograma no es
del tipo esperado
Agregar un pie de página 12
EXCEPCIONES PREDEFINIDAS EN
PL/SQL
EXCEPCION SE EJECUTA ... SQLCODE
El parámetro SELF (el primero que es pasado a un
SELF_IS_NULL método MEMBER) es nulo
-30625
STORAGE_ERROR La memoria se terminó o está corrupta -6500
El programa está tratando de referenciar un elemento de
un arreglo indexado que se encuentra en una posición
SUBSCRIPT_BEYOND_COUNT más grande que el número real de elementos de la -6533
colección
El programa está referenciando un elemento de un
SUBSCRIPT_OUTSIDE_LIMIT arreglo utilizando un número fuera del rango permitido -6532
(por ejemplo, el elemento “-1”)
La conversión de una cadena de caracteres hacia un tipo
SYS_INVALID_ROWID rowid falló porque la cadena no representa un número
-1410
Se excedió el tiempo máximo de espera por un recurso
TIMEOUT_ON_RESOURCE en Oracle
-51
TOO_MANY_ROWS Una sentencia SELECT INTO devuelve más de una fila -1422
Ocurrió un error aritmético, de conversión o
truncamiento. Por ejemplo, sucede cuando se intenta
VALUE_ERROR calzar un valor muy grande dentro de una variable más
-6502
pequeña
ZERO_DIVIDE El programa intentó efectuar una división por cero -1476

Agregar un pie de página 13


TÍTULO:

Adicional a las excepciones anteriores existe una más llamada OTHERS, que atrapa cualquier
excepción que no haya sido establecida explícitamente.

Agregar un pie de página 14


TÍTULO:

Agregar un pie de página 15


GRACIAS

Agregar un pie de página 16

También podría gustarte