sábado, 17 de mayo de 2025

Curso de PL/SQL. Bucles con FOR LOOP

Curso de PL/SQL. Bucles con FOR LOOP

En PL/SQL, los bucles o ciclos son estructuras de control que permiten ejecutar un bloque de código repetidamente. Uno de los tipos más comunes de bucle es el FOR LOOP, que resulta muy útil cuando sabemos cuántas veces necesitamos repetir una tarea. A continuación, veremos cómo funciona y algunos ejemplos prácticos de su uso.

¿Qué es un FOR LOOP en PL/SQL?

El FOR LOOP en PL/SQL se utiliza para iterar sobre un rango de valores. Cada iteración incrementa automáticamente el contador del ciclo sin que el programador tenga que preocuparse por actualizarlo manualmente. Este tipo de bucle es ideal cuando conocemos el número de iteraciones por adelantado.

El formato básico del bucle FOR LOOP es:

FOR contador IN [rango] LOOP

   -- Código que se ejecutará en cada iteración

END LOOP;

Curso de PL/SQL. Bucles con FOR LOOP


Componentes:

  • contador: Es la variable que se incrementa automáticamente con cada iteración.
  • rango: Define el inicio y el fin del bucle. Puede ser ascendente o descendente.
  • cuerpo del bucle: Es el bloque de código que se ejecuta en cada iteración.

Ejemplo básico

Un ejemplo típico sería imprimir los números del 1 al 5:

BEGIN

   FOR i IN 1..5 LOOP

      DBMS_OUTPUT.PUT_LINE('El valor de i es: ' || i);

   END LOOP;

END;

Explicación:

  • El bucle comienza con la variable i igual a 1.
  • En cada iteración, i se incrementa automáticamente en 1.
  • Se ejecuta el código dentro del bucle, que en este caso imprime el valor de i en cada vuelta.
  • El ciclo se detiene cuando i llega a 5, luego de ejecutar la última iteración.

Resultado:

El valor de i es: 1

El valor de i es: 2

El valor de i es: 3

El valor de i es: 4

El valor de i es: 5

Rango descendente

El FOR LOOP en PL/SQL también permite rangos descendentes. Si quieres ejecutar un ciclo hacia atrás, puedes utilizar el siguiente formato:

BEGIN

   FOR i IN REVERSE 5..1 LOOP

      DBMS_OUTPUT.PUT_LINE('El valor de i es: ' || i);

   END LOOP;

END;

Explicación:

  • Utilizamos la palabra clave REVERSE para que el bucle decremente el valor de i en lugar de incrementarlo.
  • El ciclo comenzará en 5 y finalizará cuando i sea 1.

Resultado:

El valor de i es: 5

El valor de i es: 4

El valor de i es: 3

El valor de i es: 2

El valor de i es: 1

Ejemplo práctico: Insertar registros en una tabla

Supongamos que tenemos una tabla llamada EMPEADOS y queremos agregar 5 registros de prueba utilizando un FOR LOOP en PL/SQL.

BEGIN

   FOR i IN 1..5 LOOP

      INSERT INTO EMPLEADOS (EMPLEADO_ID, NOMBRE)

      VALUES (i, 'Empleado ' || i);

   END LOOP;

   COMMIT;

END;

Explicación:

  • El bucle se ejecuta 5 veces, insertando un nuevo registro en la tabla EMPLEADOS en cada iteración.
  • La columna EMPLEADO_ID toma el valor de i, y la columna NOMBRE concatena el número de empleado.
  • Finalmente, el bloque termina con una sentencia COMMIT para asegurarse de que los cambios se guarden en la base de datos.

Resultado:

La tabla EMPLEADOS tendría 5 registros nuevos:

EMPLEADO_ID

NOMBRE

1

Empleado 1

2

Empleado 2

3

Empleado 3

4

Empleado 4

5

Empleado 5

Consideraciones importantes:

  • Los rangos en un FOR LOOP deben ser enteros. No se pueden utilizar valores decimales o no numéricos como rangos.
  • Un FOR LOOP siempre ejecutará las iteraciones en un orden predecible y fijo. Esto lo hace perfecto para tareas repetitivas donde se necesita controlar exactamente cuántas veces se ejecuta el ciclo.

Conclusión

El FOR LOOP en PL/SQL es una herramienta poderosa y eficiente para realizar tareas repetitivas cuando el número de iteraciones está claramente definido. Desde recorrer un rango de valores hasta realizar operaciones masivas en la base de datos, el FOR LOOP te permite escribir código limpio y fácil de mantener. 

No hay comentarios:

Publicar un comentario