In Oracle PL/SQL voert de WHILE LOOP-instructie de code uit die is geschreven tussen WHILE LOOP en END LOOP totdat de voorwaarde waar is. Hieronder geef ik enkele voorbeelden voor de Oracle WHILE LOOP-instructie.
Syntaxis
WHILE logical_condition LOOP -- some PL/SQL code END LOOP;
Oracle WHILE LOOP-voorbeelden
1. Loop 10 keer en print de tabel
In het volgende voorbeeld zal WHILE LOOP de instructies uitvoeren totdat de waarde van n_num variabele kleiner is dan of gelijk is aan 10. het zal de tabel van 2 afdrukken door de waarde van n_num variabele te verhogen met 1 voor elke iteratie van de lus.
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; n_table number := 2; BEGIN n_num := 1; WHILE n_num <= 10 LOOP DBMS_OUTPUT.put_line ('2 x ' || n_num || ' = '||(n_table * n_num)); n_num := n_num + 1; END LOOP; END; /
Uitvoer:
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 PL/SQL procedure successfully completed.
Vergeet niet de waarde van de variabele n_num te verhogen, zodat deze 10 kan bereiken, anders wordt het een oneindige lus.
2. Doorlussen totdat de Booleaanse variabele waarde WAAR is
In het volgende voorbeeld zal het herhalen totdat de b_run booleaanse variabele waarde TRUE is en zal het de n_num variabele waarde afdrukken door deze te verhogen met 1 voor elke iteratie en wanneer de waarde van n_num variabele groter is dan 5 dan zal de b_run variabele ingesteld worden op FALSE , zodat WHILE LOOP zijn werk kan afmaken.
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; b_run BOOLEAN := TRUE; BEGIN n_num := 1; WHILE b_run LOOP DBMS_OUTPUT.put_line (n_num || ' Times'); n_num := n_num + 1; IF n_num > 5 THEN b_run := FALSE; END IF; END LOOP; END; /
Uitvoer:
1 Times 2 Times 3 Times 4 Times 5 Times PL/SQL procedure successfully completed.
Vergeet ook niet om de waarde van de variabele b_run in te stellen op FALSE, anders wordt het een oneindige lus. U kunt ook de exit; . schrijven in plaats van b_run :=FALSE; statement om de lus te verlaten .
Zie ook:
- Oracle FOR LOOP REVERSE Voorbeeld
- PL/SQL-programma om werknemersgegevens af te drukken