31/12/2018
En el entorno de las bases de datos, Oracle se destaca como un líder indiscutible, y PL/SQL es la herramienta esencial para dominar su potencial. Este curso integral te guiará a través de los conceptos fundamentales y las técnicas avanzadas de PL/SQL, permitiéndote desarrollar aplicaciones robustas y eficientes.

¿Qué es PL/SQL?
PL/SQL, o Procedural Language/SQL, es una extensión del lenguaje SQL desarrollado por Oracle. A diferencia del SQL, que se enfoca en la manipulación de datos a través de consultas, PL/SQL añade la capacidad de programar, permitiendo la creación de procedimientos, funciones, triggers y paquetes que encapsulan la lógica de negocio. Esto permite una gestión más eficiente y segura de la base de datos, promoviendo la reutilización del código y la modularidad.
La principal ventaja de utilizar PL/SQL reside en la capacidad de integrar lógica de programación dentro de la base de datos. Esto se traduce en:
- Mayor eficiencia: Al ejecutar el código cerca de los datos, se reduce el tiempo de procesamiento y la carga de la red.
- Seguridad mejorada: Se protege la base de datos al encapsular la lógica de negocio dentro de procedimientos almacenados, limitando el acceso directo a las tablas.
- Reutilización de código: Se promueve la modularidad, creando componentes reutilizables para diferentes aplicaciones.
- Mantenimiento simplificado: Al centralizar la lógica, el mantenimiento y las actualizaciones se vuelven más sencillas.
SQL vs. PL/SQL: Una Comparación
| Característica | SQL | PL/SQL |
|---|---|---|
| Tipo | Lenguaje declarativo | Lenguaje procedural |
| Funcionalidad | Manipulación y consulta de datos | Programación, creación de procedimientos almacenados, funciones, triggers |
| Complejidad | Relativamente simple | Más complejo, permite mayor programación |
| Portabilidad | Alta, estándar ANSI | Específico de Oracle |
| Ejemplos de uso | Consultas SELECT, INSERT, UPDATE, DELETE | Procedimientos almacenados, funciones, triggers, manejo de excepciones |
Conceptos Fundamentales de PL/SQL
Declaración de Variables
En PL/SQL, las variables se declaran utilizando la palabra clave DECLARE, seguida del nombre de la variable, su tipo de dato y, opcionalmente, un valor inicial. Ejemplo:
DECLARE nombre VARCHAR2(50) := 'Juan'; edad NUMBER := 30;BEGIN -- Código que utiliza las variablesEND;/Tipos de Datos
PL/SQL ofrece una amplia gama de tipos de datos, incluyendo:
NUMBER: Para números.VARCHAR2: Para cadenas de texto.DATE: Para fechas.BOOLEAN: Para valores booleanos (TRUE/FALSE).
Estructuras de Control
PL/SQL soporta las estructuras de control estándar de la programación, como:

IF-THEN-ELSE: Para condicionales.LOOP,WHILE,FOR: Para bucles.CASE: Para sentencias de selección múltiple.
Excepciones
El manejo de excepciones es crucial para la creación de aplicaciones robustas. PL/SQL permite capturar y gestionar errores utilizando bloques EXCEPTION.

DECLARE e_nombre EXCEPTION;BEGIN -- Código que puede generar erroresEXCEPTION WHEN e_nombre THEN -- Manejo del error e_nombreEND;/Cursor
Un cursor es un puntero que permite recorrer los resultados de una consulta SQL. Es esencial para procesar conjuntos de resultados de forma iterativa.
DECLARE CURSOR cur_empleados IS SELECT FROM empleados; v_empleado cur_empleados%ROWTYPE;BEGIN OPEN cur_empleados; LOOP FETCH cur_empleados INTO v_empleado; EXIT WHEN cur_empleados%NOTFOUND; -- Procesar los datos de v_empleado END LOOP; CLOSE cur_empleados;END;/Procedimientos y Funciones
Los procedimientos y funciones son bloques de código reutilizables que realizan tareas específicas. La diferencia principal es que las funciones devuelven un valor, mientras que los procedimientos no.
CREATE OR REPLACE PROCEDURE saludar (p_nombre IN VARCHAR2)ISBEGIN DBMS_OUTPUT.PUT_LINE('Hola, ' || p_nombre);END;/CREATE OR REPLACE FUNCTION obtener_edad (p_fecha_nacimiento IN DATE)RETURN NUMBERIS v_edad NUMBER;BEGIN v_edad := TRUNC(MONTHS_BETWEEN(SYSDATE, p_fecha_nacimiento)/12); RETURN v_edad;END;/Triggers
Los triggers son procedimientos que se ejecutan automáticamente en respuesta a eventos específicos en una tabla o vista. Se utilizan para implementar reglas de negocio, auditoría, etc.
CREATE OR REPLACE TRIGGER trg_auditoria_empleadosAFTER INSERT OR UPDATE OR DELETE ON empleadosFOR EACH ROWBEGIN -- Registrar la acción en una tabla de auditoríaEND;/Consultas Habituales en PL/SQL
A continuación, se presentan algunas de las consultas SQL más comunes utilizadas dentro de bloques PL/SQL:

SELECT: Para consultar datos.INSERT: Para insertar nuevos registros.UPDATE: Para actualizar registros existentes.DELETE: Para eliminar registros.
Ejemplos Prácticos
Para consolidar los conocimientos, se recomienda realizar ejercicios prácticos, como la creación de procedimientos almacenados para realizar cálculos complejos, la implementación de triggers para automatizar tareas y la construcción de funciones para reutilizar código.
Conclusión
Dominar PL/SQL es fundamental para cualquier desarrollador que trabaja con bases de datos Oracle. Este curso proporciona una base sólida para construir aplicaciones robustas, eficientes y seguras. La práctica constante y la exploración de ejemplos adicionales son clave para perfeccionar las habilidades en PL/SQL.
Si quieres conocer otros artículos parecidos a Curso de pl/sql oracle: como hacerlo puedes visitar la categoría Curso.
