in

PL / SQL – Instrucción FOR LOOP


A EN BUCLE es una estructura de control de repetición que le permite escribir de manera eficiente un bucle que necesita ejecutarse un número específico de veces.

Sintaxis

FOR counter IN initial_value .. final_value LOOP 
   sequence_of_statements; 
END LOOP;

A continuación se muestra el flujo de control en un En bucle

  • El paso inicial se ejecuta primero y solo una vez. Este paso le permite declarar e inicializar cualquier variable de control de bucle.

  • A continuación, la condición, es decir, valor_inicial .. valor_final se evalúa. Si es TRUE, se ejecuta el cuerpo del bucle. Si es FALSE, el cuerpo del bucle no se ejecuta y el flujo de control salta a la siguiente instrucción justo después del bucle for.

  • Después de que se ejecuta el cuerpo del bucle for, el valor de la variable de contador aumenta o disminuye.

  • La condición ahora se evalúa nuevamente. Si es VERDADERO, el ciclo se ejecuta y el proceso se repite (cuerpo del ciclo, luego paso de incremento, y luego condición de nuevo). Después de que la condición se vuelve FALSE, el FOR-LOOP termina.

A continuación se presentan algunas características especiales de PL / SQL para bucle:

  • los valor inicial y valor final de la variable de ciclo o contador pueden ser literales, variables o expresiones, pero deben evaluarse en números. De lo contrario, PL / SQL genera la excepción predefinida VALUE_ERROR.

  • los valor inicial no necesita ser 1; sin embargo, el El incremento (o decremento) del contador de bucle debe ser 1.

  • PL / SQL permite la determinación del rango de bucle dinámicamente en tiempo de ejecución.

Ejemplo

DECLARE 
   a number(2); 
BEGIN 
   FOR a in 10 .. 20 LOOP 
      dbms_output.put_line('value of a: ' || a); 
  END LOOP; 
END; 
/

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

value of a: 10 
value of a: 11 
value of a: 12 
value of a: 13 
value of a: 14 
value of a: 15 
value of a: 16 
value of a: 17 
value of a: 18 
value of a: 19 
value of a: 20  

PL/SQL procedure successfully completed. 

Instrucción inversa FOR LOOP

De forma predeterminada, la iteración procede del valor inicial al valor final, generalmente hacia arriba desde el límite inferior al límite superior. Puede invertir este orden utilizando el MARCHA ATRÁS palabra clave. En tal caso, la iteración procede al revés. Después de cada iteración, el contador de bucles se reduce.

Sin embargo, debe escribir los límites del rango en orden ascendente (no descendente). El siguiente programa ilustra esto:

DECLARE 
   a number(2) ; 
BEGIN 
   FOR a IN REVERSE 10 .. 20 LOOP 
      dbms_output.put_line('value of a: ' || a); 
   END LOOP; 
END; 
/

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

value of a: 20 
value of a: 19 
value of a: 18 
value of a: 17 
value of a: 16 
value of a: 15 
value of a: 14 
value of a: 13 
value of a: 12 
value of a: 11 
value of a: 10  

PL/SQL procedure successfully completed. 

plsql_loops.htm

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

compras celular 12547

Cómo desbloquear y activar Facebook Marketplace y usarlo desde tu móvil o PC ¿Cómo funciona?

apple touch icon@2

java – ¿Cómo obtener una matriz JSON dentro de un objeto JSON?