Oracle PL/SQL - Bloques

BLOQUES
• Es la unidad básica de cualquier programa PL/SQL. De manera secuencial, anidados, ...
• Estructura básica de un bloque (sólo obligatoria 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;

BLOQUES (II)
• Las únicas instrucciones permitidas dentro de un 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, CREATE, ALTER, …
• Los comentarios se ponen: /* Comentarios */
• No distingue mayúsculas y minúsculas

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 seguardan 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últiples veces 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)