Excepciones en Oracle / PLSQL

Están nombrados en el paquete STANDARD en PL/SQL y no necesitan ser definidos por el programador.

La sección de EXCEPTION es la encargada de recoger todas las anomalías que se puedan producir dentro del bloque de código PL/SQL.

Este tutorial de Oracle explica cómo usar las Excepciones en Oracle / PLSQL con sintaxis y ejemplos.

Oracle tiene un conjunto estándar de excepciones ya nombrado de la siguiente manera:

Listado de excepciones.

Nombre de excepciónCódigo de errorExplicación
DUP_VAL_ON_INDEXORA-00001Este error se debe a que se ha intentado ejecutar un INSERT o un UPDATE que intenta crear una fila con un valor duplicado en un campo restringido pon un UNIQUE INDEX.
TIMEOUT_ON_RESOURCEORA-00051Ha acabado el tiempo de espera destinado a la consecución de un recurso.
TRANSACTION_BACKED_OUTORA-00061La parte remota de la transacción ha hecho rollback..
INVALID_CURSORORA-01001Esta trantado de utilizar un CURSOR que ya no existe.
NOT_LOGGED_ONORA-01012Está intentando ejecutar una llamada a Oracle antes de validarse.
LOGIN_DENIEDORA-01017Está tratando de validarse contra Oracle usando una combinación errónea de usuario/clave.
NO_DATA_FOUNDORA-01403Está sucediendo una de las siguientes cosas:

  1. Está ejecutando una sentencia SELECT INTO y no hay filas que devolver.
  2. Está haciendo referencia a una fila de un tabla que no está inicializada.
  3. Esta intentado leer pasado el fin de fichero con el paquete UTL_FILE.
TOO_MANY_ROWSORA-01422Está tratando de ejecutar una consulta SELECT INTO que devuelve más de una fila.
ZERO_DIVIDEORA-01476Está tratando de dividir por cero.
INVALID_NUMBERORA-01722Está tratando de ejecutar una sentencia SQL que trata de convertir una cadena en número, pero no ha funcionado.
STORAGE_ERRORORA-06500Se ha producido un desbordamiento de la memoria y la memoria esta corrompida.
PROGRAM_ERRORORA-06501Respuesta genérica a un error interno de Oracle.
VALUE_ERRORORA-06502Se ha producido un error de conversión, truncamiento, o restricción (constraint) de un valor numérico o de carácter.
CURSOR_ALREADY_OPENORA-06511Está intentando abrir un cursor que ya está abierto.

Sintaxis

La sintaxis de las excepciones en procedimientos y funciones.

Sintaxis de procedimientos

 La sintaxis para la excepción en un procedimiento es:

Sintaxis para funciones

La sintaxis de la excepción en una función es:

Ejemplo

A continuación, se muestra un ejemplo de un procedimiento que utiliza una excepción

En este ejemplo, estamos atrapando la Excepción llamada DUP_VAL_ON_INDEX. También estamos usando la cláusula WHEN OTHERS para atrapar a todos los errores

En conclusión

Si existe un bloque de excepcion apropiado para el tipo de excepción que esta ejecuta dicho bloque. Si no existe un bloque de control de excepciones adecuado al tipo de excepcion se ejecutará el bloque de excepcion WHEN OTHERS THEN (si existe!). WHEN OTHERS debe ser el último manejador de excepciones.

Síguenos
Facebook0
Facebook
Google+20
Google+
https://codigolite.com/excepciones-en-oracle-plsql/
RSS20
Follow by Email