Fundamentos de Programación PL/SQL en Oracle: Estructura, Excepciones y Modularidad

Clasificado en Informática

Escrito el en español con un tamaño de 4,69 KB

Fundamentos de PL/SQL: Estructura y Componentes Esenciales

El bloque PL/SQL es la estructura básica y fundamental de todos los programas en este lenguaje. Se caracteriza por tener tres zonas claramente definidas, cada una con un propósito específico:

  • Zona de Declaraciones: Precedida por la cláusula DECLARE (o IS/AS en procedimientos y funciones). Aquí se declaran objetos locales como variables, constantes, cursores, tipos, etc. Esta sección es opcional.
  • Conjunto de Instrucciones: Precedido por la cláusula BEGIN. Contiene la lógica principal del programa, es decir, las sentencias ejecutables. Esta sección es obligatoria.
  • Zona de Tratamiento de Excepciones: Precedida por la cláusula EXCEPTION. Se utiliza para gestionar errores y mensajes de aviso que puedan ocurrir durante la ejecución del bloque. Esta sección, al igual que la de declaraciones, es opcional.

Gestión de Excepciones en PL/SQL

Las excepciones en PL/SQL son mecanismos robustos para tratar errores y mensajes de aviso, permitiendo que los programas manejen situaciones inesperadas de forma controlada. Oracle proporciona excepciones predefinidas para los errores más comunes que se producen al interactuar con la base de datos. Algunos ejemplos notables incluyen:

  • NO_DATA_FOUND: Se activa cuando una sentencia SELECT INTO no devuelve ningún valor.
  • TOO_MANY_ROWS: Se activa cuando una sentencia SELECT INTO devuelve más de una fila, y la variable de destino no puede contener múltiples resultados.

Estas excepciones se activan automáticamente al producirse los errores asociados. La sección EXCEPTION del bloque PL/SQL es la encargada de gestionar estas situaciones mediante los manejadores WHEN, que especifican las acciones a tomar para cada tipo de excepción.

Estructura Modular de Programas PL/SQL

En el entorno de Oracle, podemos distinguir varios tipos de programas PL/SQL que se ejecutan en el servidor, promoviendo una estructura modular y reutilizable:

Bloques Anónimos

Son bloques PL/SQL que no tienen un nombre. Se ejecutan directamente en el servidor de la base de datos, pero no se guardan de forma persistente en ella. La zona de declaraciones de un bloque anónimo comienza con la palabra clave DECLARE. Aunque son útiles para propósitos didácticos y pruebas rápidas, su uso real en aplicaciones productivas es limitado, ya que no pueden ser reutilizados fácilmente.

Subprogramas: Procedimientos y Funciones

Los subprogramas son bloques PL/SQL que sí tienen un nombre, lo que permite invocarlos desde otros programas o herramientas. Se compilan, almacenan y ejecutan en la base de datos Oracle, facilitando la reutilización de código y la modularización. Poseen una cabecera que define el nombre del subprograma, el tipo (procedimiento o función), los parámetros de entrada/salida y, en el caso de las funciones, el tipo de valor de retorno.

La zona de declaraciones y el cuerpo del programa de un subprograma comienzan con la palabra clave IS o AS. Se clasifican principalmente en dos tipos:

  • Procedimientos (PROCEDURE): Realizan una serie de acciones y pueden o no devolver valores a través de parámetros de salida. No devuelven un valor directamente como parte de su ejecución.
  • Funciones (FUNCTION): Realizan una serie de acciones y siempre devuelven un único valor. El tipo de este valor de retorno debe ser declarado explícitamente en la cabecera de la función.

Aunque su formato genérico es similar, la principal diferencia radica en que las funciones están diseñadas para computar y devolver un valor, mientras que los procedimientos se enfocan en ejecutar una tarea.

Disparadores de Base de Datos (Triggers)

Los disparadores son programas PL/SQL almacenados en la base de datos que se asocian a eventos específicos. Se ejecutan automáticamente cuando se producen determinados cambios (como inserción, borrado o modificación de datos) en la tabla a la que están asociados, o en eventos a nivel de sistema. Son extremadamente útiles para:

  • Controlar y auditar los cambios que ocurren en la base de datos.
  • Implementar restricciones de integridad complejas que no pueden ser manejadas por restricciones declarativas.
  • Automatizar tareas en respuesta a eventos de la base de datos.

Entradas relacionadas: