Oracle
 sql >> Database >  >> RDS >> Oracle

Utilizzo di CONTINUE in loop per riprendere il controllo in Oracle

L'istruzione CONTINUE in loop esce dall'iterazione corrente di un ciclo incondizionatamente e trasferisce il controllo all'iterazione successiva del ciclo corrente o di un ciclo etichettato che lo racchiude. Nell'esempio seguente, l'istruzione CONTINUE all'interno dell'istruzione LOOP di base trasferisce il controllo incondizionatamente all'iterazione successiva del ciclo corrente.

DECLARE
x NUMBER :=0;
BEGIN
LOOP -- Dopo l'istruzione CONTINUE, il controllo riprende qui
DBMS_OUTPUT.PUT_LINE ('Inside loop:x =' || TO_CHAR (x ));
x :=x + 1;

IF x <3 -- invece questo se end se condizione per continuare puoi usare anche CONTINUE When x <3;
THEN
CONTINUE;
END IF;

DBMS_OUTPUT.PUT_LINE (
'Inside loop, after CONTINUE:x =' || TO_CHAR (x));
EXIT WHEN x =5;
END LOOP;

DBMS_OUTPUT.PUT_LINE (' Dopo il ciclo:x =' || TO_CHAR (x));
END;
/
L'output del blocco precedente dovrebbe essere simile a questo:

Anello interno:x =0
Anello interno:x =1
Anello interno:x =2
Anello interno, dopo CONTINUA:x =3
Anello interno:x =3
Inside loop, dopo CONTINUE:x =4
Inside loop:x =4
Inside loop, dopo CONTINUE:x =5
After loop:x =5