Las estructuras de control en PL/SQL permiten dirigir el flujo de ejecución de un programa. Estas estructuras son fundamentales para la lógica de programación y se dividen en tres categorías principales: estructuras de selección, estructuras de iteración y estructuras de salto.
- Estructuras de Selección
Las estructuras de selección permiten ejecutar diferentes bloques de código basados en condiciones específicas.
1.1. IF-THEN-ELSE
La estructura IF-THEN-ELSE se utiliza para ejecutar un bloque de código si una condición es verdadera y otro bloque si la condición es falsa.
Sintaxis:
IF condition THEN
-- código a ejecutar si la condición es verdadera
ELSE
-- código a ejecutar si la condición es falsa
END IF;Ejemplo:
DECLARE
v_salario NUMBER := 3000;
BEGIN
IF v_salario > 2000 THEN
DBMS_OUTPUT.PUT_LINE('Salario alto');
ELSE
DBMS_OUTPUT.PUT_LINE('Salario bajo');
END IF;
END;1.2. CASE
La estructura CASE es útil cuando se necesita evaluar múltiples condiciones.
Sintaxis:
CASE
WHEN condition1 THEN
-- código a ejecutar si condition1 es verdadera
WHEN condition2 THEN
-- código a ejecutar si condition2 es verdadera
ELSE
-- código a ejecutar si ninguna condición es verdadera
END CASE;Ejemplo:
DECLARE
v_dia VARCHAR2(10) := 'Lunes';
BEGIN
CASE v_dia
WHEN 'Lunes' THEN
DBMS_OUTPUT.PUT_LINE('Inicio de semana');
WHEN 'Viernes' THEN
DBMS_OUTPUT.PUT_LINE('Fin de semana');
ELSE
DBMS_OUTPUT.PUT_LINE('Día intermedio');
END CASE;
END;
- Estructuras de Iteración
Las estructuras de iteración permiten ejecutar un bloque de código repetidamente.
2.1. LOOP
La estructura LOOP ejecuta un bloque de código indefinidamente hasta que se encuentra una instrucción EXIT.
Sintaxis:
Ejemplo:
DECLARE
v_contador NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('Contador: ' || v_contador);
v_contador := v_contador + 1;
EXIT WHEN v_contador > 5;
END LOOP;
END;2.2. WHILE LOOP
La estructura WHILE LOOP ejecuta un bloque de código mientras una condición sea verdadera.
Sintaxis:
Ejemplo:
DECLARE
v_contador NUMBER := 1;
BEGIN
WHILE v_contador <= 5 LOOP
DBMS_OUTPUT.PUT_LINE('Contador: ' || v_contador);
v_contador := v_contador + 1;
END LOOP;
END;2.3. FOR LOOP
La estructura FOR LOOP ejecuta un bloque de código un número específico de veces.
Sintaxis:
Ejemplo:
- Estructuras de Salto
Las estructuras de salto permiten alterar el flujo de ejecución de un programa.
3.1. GOTO
La instrucción GOTO transfiere el control a una etiqueta específica en el código.
Sintaxis:
Ejemplo:
DECLARE
v_contador NUMBER := 1;
BEGIN
<<inicio>>
DBMS_OUTPUT.PUT_LINE('Contador: ' || v_contador);
v_contador := v_contador + 1;
IF v_contador <= 5 THEN
GOTO inicio;
END IF;
END;Ejercicios Prácticos
Ejercicio 1: IF-THEN-ELSE
Escribe un bloque PL/SQL que verifique si un número es positivo, negativo o cero y muestre un mensaje correspondiente.
Solución:
DECLARE
v_numero NUMBER := -5;
BEGIN
IF v_numero > 0 THEN
DBMS_OUTPUT.PUT_LINE('El número es positivo');
ELSIF v_numero < 0 THEN
DBMS_OUTPUT.PUT_LINE('El número es negativo');
ELSE
DBMS_OUTPUT.PUT_LINE('El número es cero');
END IF;
END;Ejercicio 2: FOR LOOP
Escribe un bloque PL/SQL que imprima los números del 1 al 10.
Solución:
Ejercicio 3: WHILE LOOP
Escribe un bloque PL/SQL que imprima los números del 10 al 1 en orden descendente.
Solución:
DECLARE
v_contador NUMBER := 10;
BEGIN
WHILE v_contador >= 1 LOOP
DBMS_OUTPUT.PUT_LINE('Número: ' || v_contador);
v_contador := v_contador - 1;
END LOOP;
END;Conclusión
En esta sección, hemos explorado las estructuras de control en PL/SQL, incluyendo las estructuras de selección, iteración y salto. Estas estructuras son esenciales para dirigir el flujo de ejecución de un programa y son fundamentales para cualquier programador que trabaje con PL/SQL. Asegúrate de practicar los ejemplos y ejercicios proporcionados para reforzar tu comprensión de estos conceptos. En el próximo módulo, profundizaremos en el uso de cursores en PL/SQL.
Curso de PL/SQL
Módulo 1: Introducción a PL/SQL
Módulo 2: Fundamentos de PL/SQL
- Estructura del Bloque PL/SQL
- Variables y Tipos de Datos
- Estructuras de Control
- Cursores
- Manejo de Excepciones
