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;
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