Mientras se realiza el bucle Oracle PL/SQL con ejemplo
โก Resumen inteligente
Oracle El bucle WHILE de PL/SQL repite un bloque de cรณdigo mientras una condiciรณn sea verdadera. Es un bucle de comprobaciรณn de entrada, que verifica la condiciรณn de salida antes de cada iteraciรณn, por lo que el bloque puede ejecutarse cero veces y no requiere la palabra clave EXIT explรญcita.

ยฟQuรฉ es un bucle While en PL/SQL?
El Mientras bucle En PL/SQL, funciona de forma similar a un bucle bรกsico, con la diferencia de que la condiciรณn de salida se encuentra al inicio del bucle. Funciona como un bucle de comprobaciรณn de entrada, donde el bloque de ejecuciรณn se ejecuta solo si se cumple la condiciรณn, ya que esta se verifica antes de la ejecuciรณn.
No requiere explรญcitamente la palabra clave 'EXIT' para salir del bucle, ya que valida la condiciรณn implรญcitamente en cada iteraciรณn.
Sintaxis del bucle while de PL/SQL
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- La palabra clave 'WHILE' marca el inicio del bucle y 'END LOOP' marca el final.
- La condiciรณn de salida se evalรบa cada vez antes de que comience la ejecuciรณn de la parte correspondiente.
- El bloque de ejecuciรณn contiene todo el cรณdigo que necesita ejecutarse.
- La parte de ejecuciรณn puede contener cualquier instrucciรณn ejecutable.
Ejemplo de Oracle PL/SQL mientras bucle
En este ejemplo, imprimimos los nรบmeros del 1 al 5 utilizando una instrucciรณn de bucle WHILE.

DECLARE a NUMBER := 1; BEGIN dbms_output.put_line('Program started'); WHILE (a <= 5) LOOP dbms_output.put_line(a); a:= a+1; END LOOP; dbms_output.put_line('Program completed'); END; /
Code Explicaciรณn:
- Code lรญnea 2: Declarar la variable 'a' como 'NUMBER' e inicializarla con el valor '1'.
- Code lรญnea 4: Imprimiendo el mensaje โPrograma iniciadoโ.
- Code lรญnea 5: La palabra clave 'WHILE' marca el inicio del bucle y comprueba si el valor de 'a' es menor o igual a 5.
- Code lรญnea 7: Imprime el valor de 'a'.
- Code lรญnea 8: Incrementa el valor de 'a' en 1.
- Code lรญnea 9: La palabra clave 'END LOOP' marca el final del bloque de ejecuciรณn.
- Las lรญneas 7 y 8 continรบan ejecutรกndose hasta que 'a' alcanza el valor 6, momento en el que la condiciรณn devuelve FALSE y el control sale de la loops.
- Code lรญnea 10: Imprimiendo el mensaje โPrograma completadoโ.
Bucle WHILE vs. Bucle FOR vs. Bucle bรกsico
PL/SQL ofrece tres tipos de bucles, y elegir el adecuado ayuda a mantener el cรณdigo claro. El bucle WHILE es ideal para repeticiones condicionadas, mientras que los otros dos son mรกs adecuados para un conteo fijo o una salida controlada explรญcitamente.
| Loop | Criterio de salida | Mejores usados โโcuando |
|---|---|---|
| Bucle WHILE | La condiciรณn en la parte superior se vuelve falsa. | Se desconoce el nรบmero de iteraciones. |
| En bucle | El contador llega al final del rango | Se conoce el nรบmero de iteraciones. |
| Bucle bรกsico | SALIDA explรญcita en el bloque | La salida se controla manualmente. |
Dado que el bucle WHILE evalรบa su condiciรณn al inicio, su cuerpo puede no ejecutarse ninguna vez si la condiciรณn es falsa desde el principio. Esta es la principal diferencia con un bucle bรกsico, cuyo cuerpo siempre se ejecuta al menos una vez.
Cรณmo evitar un bucle while infinito
Un bucle WHILE depende completamente de que la variable de control se acerque a la condiciรณn de salida. Si nunca lo hace, el bucle se ejecuta indefinidamente y la sesiรณn se bloquea. Tres hรกbitos evitan esto:
- Cambia el contador en cada iteraciรณn. El ejemplo incrementa 'a' dentro del bucle; eliminar esa lรญnea provocarรญa un bucle infinito.
- Pon a prueba los lรญmites. Confirma que la condiciรณn puede volverse falsa para el valor inicial, no solo para un caso ideal.
- Agregue una SALIDA de seguridad CUANDO. En un bucle basado en datos, una clรกusula EXIT WHEN que establece un nรบmero mรกximo de iteraciones actรบa como una protecciรณn contra un valor inesperado.
Cuando el nรบmero de repeticiones es realmente fijo, un bucle FOR elimina por completo el riesgo, ya que su contador se gestiona automรกticamente.
