Medan Loop in Oracle PL/SQL med exempel

Vad är PL/SQL While Loop?

Medan Loop i PL/SQL fungerar liknande det grundläggande loop-satsen, förutom att EXIT-villkoret är i början av loopen. Det fungerar som en ingångskontrollslinga där exekveringsblocket endast kommer att exekveras om villkoret är uppfyllt, eftersom exitvillkoret kontrolleras före exekvering.

Det kräver inte uttryckligen att nyckelordet "EXIT" lämnar slingan eftersom det validerar villkoret implicit varje gång.

Syntax för PL/SQL medan loop

WHILE <EXIT condition>
 LOOP
<execution block starts>
.
.
.
<execution_block_ends>
 END LOOP;
  • I ovanstående syntax markerar nyckelordet 'WHILE' början av slingan och 'END LOOP' markerar slutet på slingan.
  • EXIT-villkoret utvärderas varje gång innan exekveringsdelen börjar exekveras.
  • Exekveringsblocket innehåller all kod som behöver exekveras.
  • Exekveringsdelen kan innehålla valfri exekveringssats.

Exempel på Oracle PL/SQL medan loop

I det här exemplet kommer vi att skriva ut nummer från 1 till 5 med WHILE loop-sats. För det kommer vi att köra följande kod:

PL/SQL medan loop
Exempel på PL/SQL While Loop
DECLARE
a NUMBER :=1;
BEGIN
dbms_output.put_line('Program started');
WHILE (a <= 5) 
LOOP
dbms_output.put_line(a);
a:=a+1;
END LOOP;
dbms_output.put_line(‘Program completed' ); 	
END:
/

Kodförklaring:

  • Kodrad 2: Deklarerar variabeln 'a' som datatyp 'NUMBER' och initierar den med värdet '1'.
  • Kodrad 4: Skriver ut meddelandet "Program started".
  • Kodrad 5: Nyckelordet 'WHILE' markerar början av slingan, och det kontrollerar också om värdet på 'a' är mindre än eller lika med 5
  • Kodrad 7: Skriver ut värdet på 'a'.
  • Kodrad 8: Ökar värdet på 'a' med +1.
  • Kodrad 9: Nyckelordet 'END LOOP' markerar slutet på exekveringsblocket.
  • Koden från rad 7 och rad 8 kommer att fortsätta att köras tills 'a' når värdet 6, eftersom villkoret kommer att returnera TRUE och kontrollen kommer att AVSLUTA från slinga.
  • Kodrad 10: Skriver ut meddelandet "Program avslutat"

Sammanfattning

loop WHILE Loop
EXIT-kriterier Avsluta när kontrollvillkoret returnerar falskt
Användning Bra att använda när slingantalet är okänt och exit baseras på något annat tillstånd.