sql >> Databasteknik >  >> RDS >> Oracle

Använda CONTINUE In Loops för att återuppta kontrollen i Oracle

CONTINUE-satsen i loopar avslutar den aktuella iterationen av en loop villkorslöst och överför kontrollen till nästa iteration av antingen den aktuella slingan eller en omslutande märkt slinga. I exemplet nedan överför CONTINUE-satsen inuti den grundläggande LOOP-satsen kontrollen ovillkorligen till nästa iteration av den aktuella slingan.

DECLARE
x NUMBER :=0;
BEGIN
LOOP -- Efter CONTINUE-satsen återupptas kontrollen här
DBMS_OUTPUT.PUT_LINE ('Inside loop:x =' || TO_CHAR (x ));
x :=x + 1;

IF x <3 -- istället detta if end if villkor för att fortsätta kan du också använda CONTINUE When x <3;
THEN
CONTINUE;
END IF;

DBMS_OUTPUT.PUT_LINE (
'Inside loop, after CONTINUE:x =' || TO_CHAR (x));
AVSLUTA NÄR x =5;
END LOOP;

DBMS_OUTPUT.PUT_LINE (' Efter loop:x =' || TO_CHAR (x));
END;
/
Utgången från blocket ovan bör komma ungefär så här:

Invändig ögla:x =0
Inner ögla:x =1
Invändig ögla:x =2
Invändig ögla, efter FORTSÄTT:x =3
Invändig ögla:x =3
Inner ögla, efter FORTSÄTT:x =4
Inner ögla:x =4
Invändig ögla, efter FORTSÄTT:x =5
Efter loop:x =5

  1. Minnes-/lagringsteknikhierarki och SQL Server

  2. Hur man väljer Top N rader per grupp i MySQL

  3. Hur ändrar jag kolumntyp i Heroku?

  4. Ge privilegier för en viss databas i PostgreSQL