Oracle PL/SQL FOR LOOP con ejemplo

¿Qué es el bucle For?

La declaración "FOR LOOP" es más adecuada cuando desea ejecutar un código una cantidad conocida de veces en lugar de basarse en otras condiciones.

En este bucle, se especificarán el límite inferior y el límite superior y, siempre que la variable del bucle esté entre este rango, se ejecutará el bucle.

La variable del bucle es autoincremental, por lo que no se necesita ninguna operación de incremento explícita en este bucle. No es necesario declarar la variable de bucle, ya que se declara implícitamente.

FOR <loop_variable> in <lower_limit> .. <higher_limit> 
LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;

Explicación de sintaxis:

  • En la sintaxis anterior, la palabra clave "FOR" marca el comienzo del bucle y "END LOOP" marca el final del bucle.
  • La variable de bucle se evalúa cada vez antes de ejecutar la parte de ejecución.
  • El bloque de ejecución contiene todo el código que debe ejecutarse. La parte de ejecución puede contener cualquier declaración de ejecución.
  • La variable_bucle se declara implícitamente durante la ejecución de todo el ciclo, y el alcance de esta variable_bucle será solo dentro de este ciclo.
  • Si la variable del bucle salió del rango, entonces el control saldrá del bucle.
  • Se puede hacer que el bucle funcione en orden inverso agregando la palabra clave "REVERSE" antes del límite_inferior.

ejemplo 1: En este ejemplo, vamos a imprimir el número del 1 al 5 usando la instrucción de bucle FOR. Para eso ejecutaremos el siguientewing código.

Oracle PL/SQL PARA BUCLE

BEGIN
dbms Qutput.put linef.Prp.gram started.' );
FOR a IN 1 .. 5
LOOP
dbms_output.put_line(a);
END LOOP:
dbms_output.put_iine('Program completed.'); 
END;
/

Explicación del código:

  • Línea de código 2: Imprimiendo el mensaje “Programa iniciado”.
  • Línea de código 3: La palabra clave 'FOR' marca el comienzo del bucle y se declara loop_variable 'a'. Ahora tendrá el valor empezando del 1 al 5.
  • Línea de código 5: Imprime el valor de 'a'.
  • Línea de código 6: La palabra clave 'END LOOP' marca el final del bloque de ejecución.
  • El código de la línea 5 continuará ejecutándose hasta que 'a' alcance el valor 6, ya que la condición fallará y el control SALIRÁ del bucle.
  • Línea de código 7: Imprimir la declaración “Programa completado”

Bucles anidados

Las sentencias de bucle también se pueden anidar. El bucle exterior e interior pueden ser de diferentes tipos. En el bucle anidado, por cada valor de iteración del bucle externo, el bucle interno se ejecutará completamente.

Bucles anidados

LOOP -outer
<execution block starts>
LOOP — inner
<execution_part> 
END LOOP; 
<execution_block_ends> 
END LOOP;

Explicación de sintaxis:

  • En la sintaxis anterior, el bucle exterior tiene un bucle más dentro.
  • Los bucles pueden ser de cualquier tipo y la parte funcional de ejecución es la misma.

ejemplo 1: En este ejemplo, vamos a imprimir el número del 1 al 3 usando la instrucción de bucle FOR. Cada número se imprimirá tantas veces como su valor. Para eso ejecutaremos el siguientewing código.

Bucles anidados

Bucles anidados

DECLARE 
b NUMBER;
BEGIN
dbms output put line(‘Program started' );
FOR a IN 1..3 
LOOP
b:=1;
WHILE (a>=b)
LOOP
dbms output put line(a);
b:=b+1;
END LOOP;‭	
END LOOP;‭	‬
dbms_output.put_line('Program completed' );
END;
/

Explicación del código:

  • Línea de código 2: Declarar la variable 'b' como tipo de datos 'NÚMERO'.
  • Línea de código 4: Imprimiendo el mensaje “Programa iniciado”.
  • Línea de código 5: La palabra clave 'FOR' marca el comienzo del bucle y se declara loop_variable 'a'. Ahora tendrá el valor empezando del 1 al 3.
  • Línea de código 7: Restableciendo el valor de 'b' a '1' cada vez.
  • Línea de código 8: Interior mientras bucle comprueba la condición a>=b.
  • Línea de código 10: Imprime el valor de 'a' siempre que se cumpla la condición anterior.
  • Línea de código 14: Imprimir la declaración “Programa completado”

Resumen

Red ISTE Loop En bucle
Criterio de salida Salir cuando el contador llegue al límite.
Uso Es bueno usarlo cuando se conoce el recuento de bucles que se ejecutarán.