PL/SQL (Procedural Language/Structured Query Language) es el lenguaje de programación procedimental de Oracle que extiende las capacidades de SQL al permitir estructuras de control, manejo de excepciones y modularidad a través de procedimientos, funciones, paquetes y disparadores (triggers). PL/SQL se utiliza principalmente para escribir código que se ejecuta directamente en la base de datos, optimizando el rendimiento y reduciendo el tráfico entre aplicaciones y el servidor de bases de datos.
El código en PL/SQL se organiza en bloques, que pueden ser anónimos o almacenados. Cada bloque tiene una estructura básica:
DECLARE
-- Declaración de variables y constantes
BEGIN
-- Sentencias ejecutables
EXCEPTION
-- Manejo de excepciones
END;
DECLARE: Opcional, se utiliza para definir variables, constantes y cursores.BEGIN: Contiene las sentencias ejecutables.EXCEPTION: Opcional, maneja errores y excepciones.END: Marca el final del bloque.DECLARE
v_nombre VARCHAR2(50);
BEGIN
SELECT nombre INTO v_nombre
FROM empleados
WHERE id_empleado = 1;
DBMS_OUTPUT.PUT_LINE('Nombre del empleado: ' || v_nombre);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No se encontró ningún empleado con ese ID.');
END;
Los procedimientos y funciones son bloques PL/SQL almacenados que pueden ser reutilizados. La diferencia principal es que las funciones devuelven un valor, mientras que los procedimientos no.
CREATE OR REPLACE PROCEDURE actualizar_salario (
p_id_empleado IN NUMBER,
p_incremento IN NUMBER
) AS
BEGIN
UPDATE empleados
SET salario = salario + p_incremento
WHERE id_empleado = p_id_empleado;
COMMIT;
END;