Upload
bejar-ch
View
212
Download
0
Embed Size (px)
DESCRIPTION
Tratamiento de errores
Citation preview
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Lab. Administracin de Base de Datos 1 Prof. Elvira Fernndez (IS-443)
MANEJO DE EXCEPCIONES EN PL/SQL
I. OBJETIVOS
Controlar adecuadamente, la ocurrencia de errores en la ejecucin de programas PL/SQL a travs del uso de excepciones.
Identificar los diferentes tipos de excepciones.
Definir excepciones para anticiparse a los errores que puedan
surgir durante la ejecucin de un programa PL/SQL.
II. MARCO TERICO
QUE ES UNA EXCEPCION Los errores en la ejecucin de cdigo PL/SQL, provenientes de fallos en el diseo, errores de codificacin, fallos de hardware y otros, no son
totalmente identificables, de ah que sea necesario anticipar todos los posibles errores que se puedan presentar.
Como muchos otros lenguajes de programacin, PL/SQL tiene su propio mtodo de manipulacin de errores a travs de una caracterstica
llamada EXCEPCION. Las excepciones pueden ser definidas internamente o definidas por el
usuario. Cuando un error ocurre, una excepcin se dispara, ya sea que est o no controlada en el cdigo. Si es controlada en el cdigo, se
ejecutarn las sentencias bajo el mismo control, sino se detendr la ejecucin.
DECLARACIN DE EXCEPCIONES Las excepciones se declaran en la seccin declarativa de un bloque, se
generan en la seccin ejecutable y se tratan en la seccin de excepciones. Existen dos clases de excepciones: definidas por el usuario y predefinidas.
EXCEPCIONES PREDEFINIDAS
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Lab. Administracin de Base de Datos 2 Prof. Elvira Fernndez (IS-443)
DUP_VAL_ON_INDEX Su programa trata de almacenar valores duplicados en una
columna de base de datos que debe ser nica OTHERS Se utiliza para controlar excepciones no establecidas.
EXCEPCIONES DEFINIDAS POR EL USUARIO PL/SQL permite al usuario declarar sus propias excepciones con el fin
de dar un mejor manejo a la ejecucin de un bloque.
TRATAMIENTO DE ERRORES
Cuando se genera una excepcion, el control pasa a la seccin de excepciones del bloque. Esta seccin est compuesta por gestores para
las diferentes excepciones. Un gestor de excepciones contiene el cdigo que se ejecutar cuando ocurra el error asociado con la excepcin y sta sea generada.
DECLARE
A EXCEPCION; -- Declaracin de la excepcin A BEGIN
. RAISE A; -- Generacin de la excepcin A (nombre de la excepcion)
--------Cualquier cdigo aqu no se ejecuta
EXCEPTION
WHEN A THEN el control pasa al gestor de excepciones ---------secuencia de instrucciones
----------Este cdigo ser ejecutado.
[WHEN OTHERS THEN
--------- secuencia de instrucciones
--------Este cdigo ser ejecutado]
END;
Cada gestor de excepciones est formado por la clausula WHEN y las rdenes que se ejecutarn cuando la excepcion sea generada. La clusula WHEN identifica la excepcin correspondiente a cada gestor.
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Lab. Administracin de Base de Datos 3 Prof. Elvira Fernndez (IS-443)
Dentro de los procedimientos tambin se pueden controlar las
excepciones que pueden ocurrir durante su ejecucin agregando el bloque de Excepcion en su sintaxis de creacin:
Create procedure nombre (definicion de parametros)
As Definicin de variables
BEGIN Instrucciones SQL EXCEPTION
Control de excepciones END;
III. DESARROLLO
Ejemplo01: DESARROLLAR UN PROCEDIMIENTO ALMACENADO, PARA
MOSTRAR LA CANTIDAD DE EMPLEADOS POR COD_OCUPACION, MANEJE LAS EXCEPCIONES NECESARIAS.
EJECUTANDO EL PROCEDIMIENTO 1)
begin
CANT_EMPLExCOD_OCUPACION('SA_MAN'); end;
salida:
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Lab. Administracin de Base de Datos 4 Prof. Elvira Fernndez (IS-443)
2)
begin
CANT_EMPLExCOD_OCUPACION('SAA_MAN'); end;
AL EJECUTAR EL 2DO PROCEDIMIENTO OBSERVAMOS EL
SIGUIENTE MENSAJE DE EEROR
MANEJANDO EXCEPCIONES
Resultado:
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Lab. Administracin de Base de Datos 5 Prof. Elvira Fernndez (IS-443)
EJEMPLO 02.
ACTUALICE EL SUELDO EN X VALOR A LOS EMPLEADOS QUE GANAN MS DE DE Y VALOR, GENERAR UNA EXCEPCION DE
USUARIO.
Ejecutando procedimiento
BEGIN
AUMENTO_SUELDO(20,16000); END;
PRACTICA CALIFICADA
1) DEL EJEMPLO01, MEJORAR EL PROCEDIMIENTO
ALMACENADO PARA INGRESAR EL NOMBRE DE LA OCUPACION Y MOSTRAR LA CANTIDAD DE EMPLEADOS POR
OCUPACION. MANEJE LAS EXCEPCIONES NECESARIAS
2) DESARROLLE UN PROCEDIMIENTO ALMACENADO, PARA
MOSTRAR A LOS EMPLEADOS(NOMBRE Y APELLIDO), NOMBRE DE LA OCUPACION, NOMBRE DEL
UNIVERSIDAD NACIONAL DE SAN CRISTOBAL DE HUAMANGA FACULTAD DE ING. MINAS, GELOGIA Y CIVIL
ESCUELA DE FORMACIN PROFESIONAL DE INGENIERIA DE SISTEMAS
Lab. Administracin de Base de Datos 6 Prof. Elvira Fernndez (IS-443)
DEPARTAMENTO, POR DEPARTAMENTO AL QUE
PERTENECEN. MANEJE LAS EXCEPCIONES NECESARIAS
3) CREE UN PROCEDIMIENTO ALMACENADO QUE PERMITA
INGRESAR UN EMPLEADO. MANEJAR EL ERROR SI YA EXISTE EL EMPLEADO EN LA TABLA.MOSTRAR RESULTADO DEL ERROR GENERADO.
4) DESARROLLAR UN PROCEDIMIENTO ALMACENADO, QUE
PERMITA MOSTRAR LOS AOS DE CONTRATA QUE TIENE CADA EMPLEADO, BUSCAR POR NOMBRE DEL EMPLEADO. MANEJE LAS EXCEPCIONES NECESARIAS.
5) DESARROLLAR UN PROCEDIMIENTO ALMACENADO, PARA ACTUALIZAR LA COMISIN DEL EMPLEADO, SI EL SALARIO QUE PERCIBE ES SUPERIOR A 1000 Y MENOR A 2000,
INCREMENTAR EN 100 SOLES, Y GENERAR UNA EXCEPCION DE USUARIO.