Lenguaje PL/SQL

Anuncio
Lenguaje PL/SQL
Excepciones
Manejo de excepciones
• Una excepción es un error identificado de PL/SQL que se ‘levanta’ durante la ejecución de un bloque.
• Puede ocurrir de forma implícita debido a un error de Oracle, o se puede ‘levantar’ explícitamente.
• Se captura con un ‘manejo’ de la excepción o si la excepción no es manejada se propaga al ambiente de ejecución.
Tipos de excepciones
Excepción
Descripción
Manejo
Error predefinido de ORACLE
Uno de aproximada­
mente 20 errores que ocurren frecuentemente dentro de código PL/SQL
No se declara, y se permite que el servidor de ORACLE lo maneje implícitamente
Error no predefinido de ORACLE
Cualquier otro error estándar de ORACLE
Se declara en la sección DECLARE y se permite al servidor de ORACLE manejarlo implícitamente
Error definido por el usuario
Una condición que el desarrollador determina que no es normal
Se declara en la sección DECLARE y manejarlo explícitamente
Sintaxis
EXCEPTION WHEN excepcion [OR excepcion …] THEN
instruccion1;
instruccion2;
…
[WHEN excepcion … … ... ] THEN
instruccion1;
instruccion2;
…]
[WHEN OTHERS THEN
instruccion1;
instruccion2;
…]
Algunas excepciones predefinidas son: NO_DATA_FOUND, TOO_MANY_ROWS, INVALID_CURSOR, ZERO_DIVIDE.
Ejemplo
“Actualice el número de créditos inscritos de todos los estudiantes”
DECLARE
v_credins ESTUDIANTE.credins.%TYPE;
CURSOR e1 IS SELECT * FROM ESTUDIANTE
FOR UPDATE;
BEGIN
…
EXCEPTION WHEN INVALID_CURSOR THEN
RAISE_APPLICATION_ERROR(­20201, ‘El cursor esta mal definido’);
END;
El número de error es un número entre –20000 y –20999.
Procedimientos
El procedimiento es un bloque con nombre que acepta parámetros.
CREATE OR REPLACE PROCEDURE nombre_proc([parametro IN | OUT tipo_dato [,parametro IN | OUT tipo_dato ...] ]
IS
[declaraciones definidas por usuario]
BEGIN
….
[EXCEPTION]
…
END;
Funciones La función es un bloque con nombre que acepta parámetros y retorna un valor.
CREATE OR REPLACE FUNCTION
nombre_func([parametro IN | OUT tipo_dato [,parametro IN | OUT tipo_dato ...] ]
RETURN tipo_datos
IS
[declaraciones definidas por usuario]
BEGIN
….
RETURN valor;
[EXCEPTION]
…
END;
Descargar