Pl/sql disparadores
• En caso de error • Bloques • Expresiones • Registros • Tablas • Conversiones de datos • Variables y constantes • Cursores • Excepciones • Estructuras de control
EN CASO DE ERROR
¿Qué hacer en caso de error? Q éh d ?
“La base de datos no funciona bien, no hace lo que quiero” Proceso de resolución de errores:
1.
Revisar la tabla user_errors
1. 2.
Show errors Select * fromuser_errors;
2. 3.
¿Sintaxis correcta? Si i ? ¿Problema con una consulta?
1. 2.
La consulta no devuelve resultados Fuera del disparador la consulta funciona pero dentro no
Comenta y vencerás.
Fundamentos de las Bases de Datos
-2
1
INTRODUCCIÓN (I)
PL/SQL: Lenguaje de programación procedimental PL/SQL L j d ió di l estructurado en bloques que amplía el lenguaje estándar SQL.Permite:
Manipular datos de una BD Oracle. Usar técnicas procedurales (bucles, ...) Controlar las filas de una consulta una a una Controlar errores (excepciones) definidas por el usuario o propios de Oracle (predefinidos) Disparadores
No diferencia las minúsculas de las mayúsculas
CLIENTE == cliente
Fundamentos de las Bases de Datos
-3
BLOQUES
Es la unidad básica de cualquierprograma PL/SQL. Estructura básica de un bloque (sólo es obligatorio el conjunto de sentencias ejecutables):
DECLARE
/* Declaraciones de uso local: variables, cursores, y excepciones de usuario */
BEGIN /* Proceso: conjunto de sentencias ejecutables */
EXCEPTION /* Excepciones: zona de control de errores */ END;
Fundamentos de las Bases de Datos
-4
2
BLOQUES (II)
Las únicasinstrucciones permitidas dentro de un p bloque son: INSERT, UPDATE, DELETE Y SELECT + manipulación de datos + control de transacciones. La anidación de bloques se realiza entre las etiquetas BEGIN Y EXCEPTION y sólo se tiene una definición de variables. Instrucciones no permitidas son: DROP I t i itid DROP, CREATE, ALTER, … Los comentarios se ponen: /* Comentarios */ No distingue mayúsculas y minúsculasFundamentos de las Bases de Datos
-5
BLOQUES (III)
Tipos:
Anónimo: construido de manera dinámica y se ejecuta una vez.
Estructura básica se compilan cada vez que son ejecutados y no se guardan en la BD.
Nominado: bloque anónimo con etiqueta. Lo primero es la etiqueta. PE ->
Subprogramas: procedimientos, paquetes y funciones almacenadas en la BD ya compiladas. Se ejecutan múltiplesveces mediante llamadas explícitas. Remplazar la palabra clave DECLARE con las palabras CREATE OR REPLACE PROCEDURE nombre_proc AS
Disparadores: bloques nominados almacenados en la BD (código fuente). Se ejecutan múltiples veces de forma implícita mediante eventos sobre una tabla (INSERT, UPDATE o DELETE). Se compila cada vez que se ejecuta. (se explicarán más adelante)
Fundamentos de las Bases deDatos
-6
3
EXPRESIONES
Tipos de expresiones: Ti d i
Aritméticas : + - * / Comparaciones : = != > > >= 50; END LOOP; END; /
Fundamentos de las Bases de Datos
- 21
BUCLES
CONDICIONAL. La condición se evalúa antes de entrar
en el bucle
Sintaxis: [nombre_bucle] WHILE pl/sql_condición LOOP
sentencias; END LOOP;
Ejemplo
DECLARE V_contador BINARY_INTEGER:=1; BEGIN ; WHILEv_contador más > lentos
Fundamentos de las Bases de Datos
- 29
DISPARADORES: Aplicaciones
Restricciones de Integridad complejas. complejas IMPORTANTE: no se deben usar para garantizar el cumplimiento de las RI a nivel de esquema !!! (el esquema ha de contener toda la semántica que permita sin utilizar disparadores) Auditoría: registro de los cambios realizados y quién los realizó ié l li óAviso automático a otros programas de llevar a cabo una determinada acción Actualización en cascada
Fundamentos de las Bases de Datos
- 30
15
DISPARADORES: Utilización
No disparadores recursivos: agotan memoria memoria. Sólo se almacena el código fuente del disparador. Se compila cada vez que se va a ejecutar (lectura del diccionario de datos). Por lo tanto si el disparador tiene...
Regístrate para leer el documento completo.