www.devjoker.com

Estructuras de control en PL/SQL

Estrcuturas de control de flujo

   En PL/SQL solo disponemos de la estructura condicional IF. Su sintaxis se muestra a continuación:

	
IF (expresion) THEN -- Instrucciones ELSIF (expresion) THEN -- Instrucciones ELSE -- Instrucciones END IF;

   Un aspecto a tener en cuenta es que la instrucción condicional anidada es ELSIF y no "ELSEIF".

Sentencia GOTO

    PL/SQL dispone de la sentencia GOTO. La sentencia GOTO desvia el flujo de ejecució a una determinada etiqueta.

    En PL/SQL las etiquetas se indican del siguiente modo: << etiqueta >>

    El siguiente ejemplo ilustra el uso de GOTO.


DECLARE
  flag NUMBER;
BEGIN
  flag :=1 ;
  IF (flag = 1) THEN
     GOTO paso2;    
  END IF;
<<paso1>>
         dbms_output.put_line('Ejecucion de paso 1');
<<paso2>>
         dbms_output.put_line('Ejecucion de paso 2');
END;

Bucles

   En PL/SQL tenemos a nuestra disposición los siguientes iteradores o bucles:

  • LOOP
  • WHILE
  • FOR

   El bucle LOOP, se repite tantas veces como sea necesario hasta que se fuerza su salida con la instrucción EXIT. Su sintaxis es la siguiente


LOOP -- Instrucciones IF (expresion) THEN -- Instrucciones EXIT; END IF; END LOOP;

   El bucle WHILE, se repite mientras que se cumpla expresion.


WHILE (expresion) LOOP -- Instrucciones END LOOP;

   El bucle FOR, se repite tanta veces como le indiquemos en los identificadores inicio y final.

	
FOR contador IN [REVERSE] inicio..final LOOP -- Instrucciones END LOOP;

    En el caso de especificar REVERSE  el bucle se recorre en sentido inverso.