PL / SQL - Bucles

En este capítulo, discutiremos los bucles en PL / SQL. Puede haber una situación en la que necesite ejecutar un bloque de código varias veces. En general, las sentencias se ejecutan secuencialmente: la primera sentencia de una función se ejecuta primero, seguida de la segunda, y así sucesivamente.

Los lenguajes de programación proporcionan varias estructuras de control que permiten rutas de ejecución más complicadas.

Una declaración de bucle nos permite ejecutar una declaración o grupo de declaraciones varias veces y la siguiente es la forma general de una declaración de bucle en la mayoría de los lenguajes de programación:

PL / SQL proporciona los siguientes tipos de bucle para manejar los requisitos de bucle. Haga clic en los siguientes enlaces para verificar su detalle.

S. No Tipo de bucle y descripción
1 BUCLE PL / SQL Básico

En esta estructura de bucle, la secuencia de declaraciones se incluye entre las declaraciones LOOP y END LOOP. En cada iteración, se ejecuta la secuencia de declaraciones y luego se reanuda el control en la parte superior del ciclo.

2 PL / SQL MIENTRAS LOOP

Repite una declaración o un grupo de declaraciones mientras una condición determinada es verdadera. Prueba la condición antes de ejecutar el cuerpo del bucle.

3 PL / SQL PARA BUCLE

Ejecuta una secuencia de declaraciones varias veces y abrevia el código que administra la variable de ciclo.

4 Bucles anidados en PL / SQL

Puede usar uno o más bucles dentro de cualquier otro bucle básico, while o for.

Etiquetado de un bucle PL / SQL

Los bucles PL / SQL se pueden etiquetar. La etiqueta debe estar encerrada entre corchetes de doble ángulo (<< y >>) y aparecer al principio de la declaración LOOP. El nombre de la etiqueta también puede aparecer al final de la instrucción LOOP. Puede usar la etiqueta en la declaración EXIT para salir del ciclo.

El siguiente programa ilustra el concepto:

DECLARE 
   i number(1); 
   j number(1); 
BEGIN 
   << outer_loop >> 
   FOR i IN 1..3 LOOP 
      << inner_loop >> 
      FOR j IN 1..3 LOOP 
         dbms_output.put_line('i is: '|| i || ' and j is: ' || j); 
      END loop inner_loop; 
   END loop outer_loop; 
END; 
/

Cuando el código anterior se ejecuta en el indicador de SQL, produce el siguiente resultado:

i is: 1 and j is: 1 
i is: 1 and j is: 2 
i is: 1 and j is: 3 
i is: 2 and j is: 1 
i is: 2 and j is: 2 
i is: 2 and j is: 3 
i is: 3 and j is: 1 
i is: 3 and j is: 2 
i is: 3 and j is: 3  

PL/SQL procedure successfully completed.

Las declaraciones de control de bucle

Las sentencias de control de bucle cambian la ejecución de su secuencia normal. Cuando la ejecución abandona un ámbito, todos los objetos automáticos que se crearon en ese ámbito se destruyen.

PL / SQL admite las siguientes declaraciones de control. Los lazos de etiquetado también ayudan a llevar el control fuera de un bucle. Haga clic en los siguientes enlaces para verificar sus detalles.

S. No Declaración de control y descripción
1 Declaración EXIT

La instrucción Exit completa el ciclo y el control pasa a la instrucción inmediatamente después de END LOOP.

2 Declaración CONTINUE

Hace que el bucle omita el resto de su cuerpo e inmediatamente vuelva a probar su condición antes de reiterar.

3 Declaración GOTO

Transfiere el control a la declaración etiquetada. Aunque no se recomienda utilizar la instrucción GOTO en su programa.