While Einschleifen Oracle PL/SQL mit Beispiel
โก Intelligente Zusammenfassung
Oracle Die PL/SQL-WHILE-Schleife wiederholt einen Codeblock, solange eine Bedingung erfรผllt ist. Es handelt sich um eine Schleife, die den Eintritt prรผft und vor jeder Iteration die Austrittsbedingung รผberprรผft. Daher kann der Block auch nullmal ausgefรผhrt werden und benรถtigt kein explizites EXIT-Schlรผsselwort.

Was ist eine PL/SQL-While-Schleife?
Das While-Schleife In PL/SQL funktioniert dies รคhnlich wie eine einfache Schleife, nur dass die Abbruchbedingung ganz am Anfang der Schleife steht. Es handelt sich um eine Schleife mit Eintrittsprรผfung, bei der der Ausfรผhrungsblock nur ausgefรผhrt wird, wenn die Bedingung erfรผllt ist, da die Abbruchbedingung vor der Ausfรผhrung geprรผft wird.
Es ist nicht explizit erforderlich, das Schlรผsselwort 'EXIT' zum Verlassen der Schleife zu verwenden, da die Bedingung jedes Mal implizit รผberprรผft wird.
PL/SQL While-Schleifensyntax
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- Das Schlรผsselwort 'WHILE' markiert den Beginn der Schleife und 'END LOOP' das Ende.
- Die Abbruchbedingung wird jedes Mal ausgewertet, bevor der eigentliche Ausfรผhrungsteil beginnt.
- Der Ausfรผhrungsblock enthรคlt den gesamten Code, der ausgefรผhrt werden muss.
- Der Ausfรผhrungsteil kann beliebige ausfรผhrbare Anweisungen enthalten.
Beispiel von Oracle PL/SQL While-Schleife
In diesem Beispiel geben wir die Zahlen von 1 bis 5 mithilfe einer WHILE-Schleife aus.

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 Erlรคuterung:
- Code Zeile 2: Die Variable 'a' wird als 'NUMBER' deklariert und mit dem Wert '1' initialisiert.
- Code Zeile 4: Die Meldung โProgramm gestartetโ wird ausgegeben.
- Code Zeile 5: Das Schlรผsselwort 'WHILE' markiert den Beginn der Schleife und prรผft, ob der Wert von 'a' kleiner oder gleich 5 ist.
- Code Zeile 7: Gibt den Wert von 'a' aus.
- Code Zeile 8: Erhรถht den Wert von 'a' um 1.
- Code Zeile 9: Das Schlรผsselwort 'END LOOP' markiert das Ende des Ausfรผhrungsblocks.
- Die Zeilen 7 und 8 werden so lange ausgefรผhrt, bis 'a' den Wert 6 erreicht. Dann ist die Bedingung FALSCH und die Programmausfรผhrung wird beendet. Schleife.
- Code Zeile 10: Drucken der Meldung โProgramm abgeschlossenโ.
WHILE-Schleife vs. FOR-Schleife vs. Basisschleife
PL/SQL bietet drei Schleifentypen, und die Wahl des richtigen Typs sorgt fรผr รผbersichtlichen Code. Die WHILE-Schleife eignet sich fรผr bedingungsgesteuerte Wiederholungen, wรคhrend die anderen beiden fรผr eine feste Anzahl von Durchlรคufen oder einen explizit gesteuerten Abbruch geeignet sind.
| Loop | Abbruchkriterium | am besten geeignet, wenn |
|---|---|---|
| WHILE-Schleife | Die Bedingung oben ist nicht mehr erfรผllt. | Die Anzahl der Iterationen ist unbekannt |
| FOR-Schleife | Der Zรคhler erreicht das Ende des Bereichs | Die Anzahl der Iterationen ist bekannt |
| Grundschleife | Expliziter EXIT im Block | Der Ausgang wird manuell gesteuert. |
Da die WHILE-Schleife ihre Bedingung am Anfang prรผft, kann der Schleifenkรถrper nullmal ausgefรผhrt werden, wenn die Bedingung von Anfang an falsch ist. Dies ist der entscheidende Unterschied zu einer einfachen Schleife, deren Schleifenkรถrper immer mindestens einmal ausgefรผhrt wird.
Vermeidung einer Endlosschleife
Eine WHILE-Schleife ist vollstรคndig davon abhรคngig, dass sich die steuernde Variable der Abbruchbedingung annรคhert. Wenn dies nie der Fall ist, lรคuft die Schleife endlos und die Sitzung hรคngt sich auf. Drei Gewohnheiten verhindern dies:
- Der Zรคhler wird in jeder Iteration geรคndert. Das Beispiel erhรถht den Wert von 'a' innerhalb der Schleife; wรผrde man diese Zeile entfernen, wรผrde die Schleife endlos laufen.
- Teste die Grenze. Bestรคtigen Sie, dass die Bedingung nicht nur im Idealfall, sondern auch schon fรผr den Ausgangswert falsch sein kann.
- Fรผgen Sie einen Sicherheitsausgang hinzu, wenn. Bei einer datengesteuerten Schleife dient ein EXIT WHEN bei Erreichen der maximalen Iterationsanzahl als Schutz vor einem unerwarteten Wert.
Wenn die Anzahl der Wiederholungen tatsรคchlich feststeht, beseitigt eine FOR-Schleife das Risiko vollstรคndig, da ihr Zรคhler automatisch verwaltet wird.
