sql >> Base de Datos >  >> RDS >> Oracle

Uso de CONTINUE In Loops para reanudar el control en Oracle

La instrucción CONTINUAR en los bucles sale de la iteración actual de un ciclo incondicionalmente y transfiere el control a la siguiente iteración del ciclo actual o un bucle etiquetado adjunto. En el siguiente ejemplo, la instrucción CONTINUAR dentro de la instrucción BUCLE básica transfiere el control incondicionalmente a la siguiente iteración del bucle actual.

DECLARE
x NUMBER :=0;
BEGIN
LOOP -- Después de la instrucción CONTINUE, el control se reanuda aquí
DBMS_OUTPUT.PUT_LINE ('Inside loop:x =' || TO_CHAR (x ));
x :=x + 1;

SI x <3 -- en su lugar, esta condición si finaliza para continuar también puede usar CONTINUAR Cuando x <3;
ENTONCES
CONTINUAR;
FINALIZAR SI;

DBMS_OUTPUT.PUT_LINE (
'Dentro del bucle, después de CONTINUAR:x =' || TO_CHAR (x));
SALIR CUANDO x =5;
FINALIZAR EL BUCLE;

DBMS_OUTPUT.PUT_LINE (' After loop:x =' || TO_CHAR (x));
END;
/
La salida del bloque anterior debería ser algo como esto:

Bucle interior:x =0
Bucle interior:x =1
Bucle interior:x =2
Bucle interior, después de CONTINUAR:x =3
Bucle interior:x =3
Ciclo interior, después de CONTINUAR:x =4
Ciclo interior:x =4
Ciclo interior, después de CONTINUAR:x =5
Ciclo después:x =5