Terwijl Loop in Oracle PL/SQL met voorbeeld
โก Slimme samenvatting
Oracle Een PL/SQL WHILE-lus herhaalt een codeblok zolang een voorwaarde waar blijft. Het is een lus die de exit-voorwaarde controleert vรณรณr elke iteratie, waardoor het codeblok nul keer kan worden uitgevoerd en er geen expliciet EXIT-sleutelwoord nodig is.

Wat is een PL/SQL While-lus?
De Herhalingslus In PL/SQL werkt een lus vergelijkbaar met een standaard lus, met als enige verschil dat de exit-voorwaarde zich aan het begin van de lus bevindt. Het werkt als een lus met een ingangscontrole, waarbij het uitvoeringsblok alleen wordt uitgevoerd als aan de voorwaarde is voldaan, omdat de exit-voorwaarde vรณรณr de uitvoering wordt gecontroleerd.
Het is niet nodig om expliciet het trefwoord 'EXIT' te gebruiken om de lus te verlaten, omdat de voorwaarde elke keer impliciet wordt gevalideerd.
PL/SQL While-lus-syntaxis
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- Het sleutelwoord 'WHILE' markeert het begin van de lus en 'END LOOP' markeert het einde.
- De exitvoorwaarde wordt telkens gecontroleerd voordat het uitvoeringsgedeelte begint.
- Het uitvoeringsblok bevat alle code die moet worden uitgevoerd.
- Het uitvoeringsgedeelte kan elke uitvoerbare instructie bevatten.
Voorbeeld Oracle PL/SQL While-lus
In dit voorbeeld printen we de getallen van 1 tot en met 5 met behulp van een WHILE-lus.

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; /
Code Uitleg:
- Code lijn 2: De variabele 'a' declareren als 'NUMBER' en initialiseren met de waarde '1'.
- Code lijn 4: De melding "Programma gestart" wordt afgedrukt.
- Code lijn 5: Het sleutelwoord 'WHILE' markeert het begin van de lus en controleert of de waarde van 'a' kleiner dan of gelijk aan 5 is.
- Code lijn 7: Drukt de waarde van 'a' af.
- Code lijn 8: Verhoogt de waarde van 'a' met 1.
- Code lijn 9: Het trefwoord 'END LOOP' markeert het einde van het uitvoeringsblok.
- Regels 7 en 8 worden uitgevoerd totdat 'a' de waarde 6 bereikt, waarna de voorwaarde FALSE retourneert en de uitvoering stopt. lus.
- Code lijn 10: Het bericht "Programma voltooid" afdrukken.
WHILE-lus versus FOR-lus versus eenvoudige lus
PL/SQL biedt drie soorten lussen, en het kiezen van de juiste zorgt voor overzichtelijke code. De WHILE-lus is geschikt voor herhaling op basis van een voorwaarde, terwijl de andere twee geschikt zijn voor een vast aantal herhalingen of een expliciet gecontroleerde exit.
| Ringleiding | Uitgangscriteria | Het beste te gebruiken wanneer |
|---|---|---|
| WHILE-lus | De voorwaarde bovenaan wordt onjuist. | Het aantal iteraties is onbekend. |
| For loop | De teller bereikt het einde van het bereik. | Het aantal iteraties is bekend. |
| Basislus | Expliciete EXIT in het blok | De uitgang wordt handmatig bediend. |
Omdat de WHILE-lus de voorwaarde aan het begin controleert, kan de lusbody nul keer worden uitgevoerd als de voorwaarde vanaf het begin onwaar is. Dit is het belangrijkste verschil met een eenvoudige lus, waarvan de lusbody altijd minstens รฉรฉn keer wordt uitgevoerd.
Een oneindige while-lus vermijden
Een WHILE-lus is volledig afhankelijk van de sturende variabele die naar de exit-conditie beweegt. Als dat nooit gebeurt, blijft de lus oneindig draaien en loopt de sessie vast. Drie gewoonten voorkomen dit:
- Verander de teller bij elke iteratie. In het voorbeeld wordt 'a' binnen de lus verhoogd; als die regel wordt verwijderd, blijft de lus oneindig doorlopen.
- Test de grens. Bevestig dat de voorwaarde daadwerkelijk onwaar kan worden voor de beginwaarde, en niet alleen in een ideaal geval.
- Voeg een veiligheidsuitgang toe wanneer... Bij een datagestuurde lus fungeert een EXIT WHEN bij een maximaal aantal iteraties als een beveiliging tegen een onverwachte waarde.
Als het aantal herhalingen vaststaat, elimineert een FOR-lus het risico volledig, omdat de teller automatisch wordt beheerd.
