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.

  • ๐Ÿ” Zweck: Eine WHILE-Schleife lรคuft so lange, wie eine Bedingung wahr ist, und stoppt, sobald sie falsch ist.
  • ๐Ÿšฆ Zugangskontrolle: Die Bedingung wird vor dem Block geprรผft, sodass die Schleife null Mal durchlaufen werden kann.
  • ๐Ÿงฎ Kein Ausgang erforderlich: Die Bedingung wird in jeder Iteration implizit รผberprรผft, daher ist kein explizites EXIT erforderlich.
  • ๐Ÿ”ข Zรคhler: Innerhalb des Blocks muss eine Variable geรคndert werden, sodass die Bedingung schlieรŸlich falsch wird.
  • ๏ธ Unendliches Risiko: Wenn der Zรคhler die Bedingung nie nicht erfรผllt, lรคuft die Schleife unendlich lange.
  • ๏ธ vs FรœR: Verwenden Sie WHILE, wenn die Anzahl der Iterationen unbekannt ist, und FOR, wenn sie feststeht.
  • ๐Ÿšช Vorzeitiger Ausstieg: EXIT WHEN kann eine WHILE-Schleife noch verlassen, bevor die Bedingung nicht mehr erfรผllt ist.

Oracle PL/SQL While-Schleife

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.

Beispiel fรผr eine PL/SQL-While-Schleife
Beispiel fรผr eine PL/SQL-While-Schleife
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.

Hรคufig gestellte Fragen

Ja. Da die Bedingung vor dem Block geprรผft wird, wird der Schleifenkรถrper nie ausgefรผhrt, wenn sie zu Beginn falsch ist. Diese Eingangsprรผfung ist der Hauptunterschied zu einer einfachen Schleife, die immer einmal durchlaufen wird.

Stellen Sie sicher, dass sich eine Variable innerhalb der Schleife in jeder Iteration in Richtung der Abbruchbedingung รคndert. Das Hinzufรผgen eines EXIT WHEN-Befehls bei Erreichen einer maximalen Anzahl von Durchlรคufen ist eine nรผtzliche SicherheitsmaรŸnahme fรผr datengesteuerte Schleifen.

Verwenden Sie die WHILE-Schleife, wenn die Anzahl der Iterationen unbekannt ist und von einer Bedingung abhรคngt. Verwenden Sie die FOR-Schleife, wenn Sie einen festen Bereich durchlaufen, da der Zรคhler automatisch verwaltet wird.

Oft. KI kann prรผfen, ob sich die Kontrollvariable der Abbruchbedingung annรคhert und warnen, wenn dies nicht der Fall ist. Eine Schleife, deren Abbruch von Echtzeitdaten abhรคngt, benรถtigt dennoch eine Sicherheitsprรผfung.

Ja. Obwohl eine WHILE-Schleife beendet wird, sobald ihre oberste Bedingung nicht mehr erfรผllt ist, kann ein EXIT- oder EXIT WHEN-Befehl innerhalb des Schleifenkรถrpers die Schleife vorzeitig verlassen, was nรผtzlich ist, um einen Sonderfall abzufangen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: