|
PL/SQL Concepto de Excepción
- ¿Qué es una excepción? Es un identificador de PL/SQL que surge durante la ejecución.
- ¿Cómo surge? Se produce por un error Oracle o bien puede ser provocada explícitamente.
- ¿Cómo se gestiona? Interrumpiéndola con un manejador de excepciones o propagándola al entorno de llamadas.
PL/SQL Interrupción de Excepciones
PL/SQL Excepciones de Oracle8
PL/SQL Excepciones de Oracle8
PL/SQL Excepciones de Usuario
- Se declaran en la sección declarativa DECLARE.
- Se provocan explícitamente en la sección ejecutable utilizando la sentencia RAISE.
- Se gestiona la excepción dentro del bloque de excepciones EXCEPTION.
PL/SQL Excepciones de Usuario
PL/SQL Funciones para Identificar Excepciones
- SQLCODE
Devuelve el valor numérico del código de error SQL. No se puede referenciar directamente, hay que asignarlo a una variable PL/SQL de tipo NUMBER.
- SQLERRM
Devuelve el mensaje asociado con el número de error. Tipo VARCHAR2.
PL/SQL RAISE_APPLICATION_ERROR
- Utilice el procedimiento RAISE_APPLICATION_ERROR para comunicar de forma interactiva una excepción predefinida, devolviendo un código y un mensaje de error no estándar.
PL/SQL RAISE_APPLICATION_ERROR
- Se utiliza en dos lugares distintos:
- SECCIÓN EJECUTABLE
- SECCIÓN DE EXCEPCIONES
- Ejemplos:
SQL Ejercicios Ejercicios Excepciones
- Para un número de empleado dado (por medio de comandos SQL*Plus), incrementarle el salario en un 10%. Controlar dos excepciones predefinidas de ORACLE, NO_DATA_FOUND y TOO_MANY_ROWS.
- Por medio de comandos SQL*Plus, aceptar tres valores que correspondan al número, nombre y localidad de un departamento.
Realizar un bloque PL/SQL 9i que inserte en la tabla DEPT los valores aceptados. Controlar los siguientes errores:
- Si el departamento ya existe, insertar en la tabla TEMP un error.
- Si algún dato de los insertados es de mayor longitud que la especificada en la tabla, insertar un error en la tabla TEMP.
- Si se producen otros errores, insertar en la tabla TEMP el número y el mensaje del error producido.
Nota: El error ORACLE de longitud del dato fuera del rango es el –1438
|