Wie alle wichtigen Programmiersprachen unterstützt PL/SQL Schleifen, die es ermöglichen, eine Reihe von Anweisungen zu wiederholen, bis eine bestimmte Bedingung erfüllt ist.
In diesem Tutorial untersuchen wir die Verwendung der LOOP-Anweisung in PL/SQL, um einen Codeblock wiederholt auszuführen.
Oracle-Schleifen
Die PL/SQL-Sprache unterstützt die verschiedenen Schleifenkonstrukte wie „for“-Schleife und „while“-Schleifen. Wir können die Syntax einer generischen Schleife in Oracle wie folgt ausdrücken:
<< Etikette >> SCHLEIFE
loop_statement;
SCHLEIFE ENDE loop_label;
Diese enthält das Schlüsselwort LOOP und den Rumpf der auszuführenden Schleife und wird vom Schlüsselwort END LOOP eingeschlossen.
Der LOOP-Block führt die definierten Aktionen aus und gibt die Steuerung nach Abschluss an die oberste Schleifenklausel zurück. Dies wird normalerweise in eine EXIT- oder EXIT WHEN-Klausel eingeschlossen, um die Schleife zu beenden, nachdem eine bestimmte Bedingung erfüllt ist. Dies hilft, die Endlosschleifen zu vermeiden.
Syntax der Oracle-For-Schleife:
Das Folgende zeigt die Syntax einer „for“-Schleife in PL/SQL:
STARTFOR loop_variable IN [untere_Grenze..obere_Grenze] LOOP
-- Code, der in der Schleife ausgeführt werden soll
SCHLEIFE ENDE;
ENDE;
Die Schleifenvariable ermöglicht Ihnen, eine Schleife zu definieren, die verwendet wird, um die Schleife und die unteren und oberen Grenzen zu steuern. Die Ober- und Untergrenze geben die Bereichswerte an, in denen die Schleifenauswertung erfolgt.
Oracle While-Schleifen
Wir können die „while“-Schleifen auch in PL/SQL definieren, wie die folgende Syntax zeigt:
STARTWHILE-Bedingungsschleife
- Schleifenaktion
SCHLEIFE ENDE;
ENDE;
In einer „while“-Schleife wird die Schleifenaktion wiederholt ausgeführt, solange die Bedingung wahr ist.
Oracle-Cursor für Schleifen
Oracle unterstützt auch die „Cursor for“-Schleifen, die es uns ermöglichen, eine Reihe von Anweisungen für jede Zeile in einer bestimmten Ergebnismenge auszuführen. Die Syntax kann wie folgt ausgedrückt werden:
STARTFOR loop_variable IN (SELECT Spalte1, Spalte2, ...
VON Tabelle1, Tabelle2, ...
WHERE-Bedingung) LOOP
- Schleifenaktion
SCHLEIFE ENDE;
ENDE;
Beispielschleifen in Oracle
Die folgenden Beispiele behandeln die Grundlagen der Arbeit mit for-, while- und for-Cursor-Schleifen in Oracle.
Beispiel für eine Oracle-For-Schleife:
Dieses Beispiel zeigt, wie Sie eine „for“-Schleife verwenden, um die Zahlen von 1 bis 10 auszugeben.
STARTFOR i IN 1..10 SCHLEIFE
DBMS_OUTPUT.PUT_LINE(i);
SCHLEIFE ENDE;
ENDE;
Beispiel einer While-Schleife:
Wir können eine ähnliche Aktion mit einer While-Schleife ausführen, wie im Folgenden gezeigt:
STARTERKLÄREN
i ZAHL := 1;
START
WÄHREND i <= 10 SCHLEIFE
DBMS_OUTPUT.PUT_LINE(i);
ich := ich + 1;
SCHLEIFE ENDE;
ENDE;
ENDE;
Dies sollte eine ähnliche Aktion wie die „for“-Schleife ausführen.
Cursor für Schleife Beispiel:
Im Folgenden wird gezeigt, wie Sie die „Cursor for“-Schleife verwenden, um den vollständigen Namen eines Kunden zu erhalten:
STARTFÜR Mitarbeiter IN (SELECT Vorname, Nachname
VON Mitarbeitern) LOOP
DBMS_OUTPUT.PUT_LINE(Mitarbeiter.Vorname || ' ' || Mitarbeiter.Nachname);
SCHLEIFE ENDE;
ENDE;
Beispielausgabe:
Fazit
In diesem Beitrag sind Sie auf drei Haupttypen von Schleifen in der Oracle PL/SQL-Sprache gestoßen. Sie können die Dokumentation überprüfen, um weitere Informationen zu erhalten.