sábado, 12 de abril de 2025

Curso de PL/SQL. Control de Flujo con IF-THEN-ELSE en PL/SQL

En el mundo de PL/SQL, una de las herramientas más importantes para controlar el flujo de nuestro programa es la estructura IF-THEN-ELSE. Esta  permite tomar decisiones dentro de nuestros bloques de código, ejecutando ciertas acciones cuando se cumple una condición y otras cuando no se cumple.

¿Qué es IF-THEN-ELSE?

La estructura IF-THEN-ELSE se utiliza para ejecutar diferentes bloques de código dependiendo del resultado de una condición lógica. Esta estructura es muy similar a la de otros lenguajes de programación, pero se adapta específicamente a las reglas de PL/SQL.

La sintaxis básica es la siguiente:

IF condición THEN

    -- Código a ejecutar si la condición es verdadera

ELSE

    -- Código a ejecutar si la condición es falsa

END IF;

Para hacer el código aún más flexible, PL/SQL también nos ofrece la opción de usar ELSIF si tenemos múltiples condiciones. Esto permite evaluar varias posibilidades de manera ordenada.

Control de Flujo con IF-THEN-ELSE en PL/SQL


Ejemplo Básico de IF-THEN-ELSE

Imaginemos que tenemos una variable que almacena el salario de un empleado, y queremos imprimir un mensaje basado en el valor del salario. El siguiente ejemplo muestra cómo podríamos hacerlo:

DECLARE

    salario NUMBER := 4500;

BEGIN

    IF salario > 5000 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es alto.');

    ELSE

        DBMS_OUTPUT.PUT_LINE('El salario es moderado o bajo.');

    END IF;

END;

En este ejemplo:

  • Si el salario es mayor que 5000, se mostrará el mensaje: "El salario es alto."
  • De lo contrario, se mostrará el mensaje: "El salario es moderado o bajo."

Utilizando ELSIF para Múltiples Condiciones

Si necesitamos evaluar más de dos situaciones, podemos utilizar ELSIF. Imagina que quieres clasificar los salarios en diferentes categorías:

DECLARE

    salario NUMBER := 3500;

BEGIN

    IF salario > 7000 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es muy alto.');

    ELSIF salario BETWEEN 5000 AND 7000 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es alto.');

    ELSIF salario BETWEEN 3000 AND 4999 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es moderado.');

    ELSE

        DBMS_OUTPUT.PUT_LINE('El salario es bajo.');

    END IF;

END;

Aquí hemos introducido múltiples condiciones:

  1. Si el salario es mayor que 7000, mostramos "El salario es muy alto."
  2. Si está entre 5000 y 7000, mostramos "El salario es alto."
  3. Si está entre 3000 y 4999, mostramos "El salario es moderado."
  4. Si no cumple ninguna de las anteriores, mostramos "El salario es bajo."

Ventajas de IF-THEN-ELSE en PL/SQL

  • Claridad: Permite tomar decisiones en el código de una manera lógica y fácil de entender.
  • Flexibilidad: Podemos encadenar múltiples condiciones con ELSIF, lo cual es ideal para manejar varios casos específicos.
  • Control del flujo: Ayuda a controlar qué se ejecuta y cuándo, en función de las condiciones dadas.

Ejemplo con Variables de Base de Datos

Podemos hacer un ejemplo un poco más avanzado usando datos que provienen de una tabla. Supongamos que tenemos una tabla llamada empleados y queremos clasificar a los empleados según sus años de antigüedad.

DECLARE

    v_antiguedad NUMBER;

BEGIN

    -- Supongamos que estamos seleccionando a un empleado con ID = 101

    SELECT antiguedad INTO v_antiguedad FROM empleados WHERE empleado_id = 101;

   

    IF v_antiguedad > 10 THEN

        DBMS_OUTPUT.PUT_LINE('El empleado tiene alta antigüedad.');

    ELSIF v_antiguedad BETWEEN 5 AND 10 THEN

        DBMS_OUTPUT.PUT_LINE('El empleado tiene antigüedad moderada.');

    ELSE

        DBMS_OUTPUT.PUT_LINE('El empleado es relativamente nuevo.');

    END IF;

END;

En este ejemplo, estamos consultando la antigüedad de un empleado y mostrando un mensaje basado en la cantidad de años que ha trabajado en la empresa. El uso de IF-THEN-ELSE nos permite decidir qué mensaje mostrar dependiendo del valor de v_antiguedad.

Conclusión

La estructura IF-THEN-ELSE en PL/SQL es fundamental para controlar la lógica y el flujo de nuestros programas. Nos permite tomar decisiones y actuar en función de los datos que tenemos disponibles. Ya sea que estemos trabajando con simples valores de variables o con datos provenientes de la base de datos, esta herramienta es esencial para escribir código eficiente y efectivo.

No hay comentarios:

Publicar un comentario