PL/SQL Cursor FOR LOOP
Zusammenfassung: In diesem Tutorial erfahren Sie, wie Sie mit der PL/SQL cursor FOR LOOP
– Anweisung jeden Datensatz von einem Cursor abrufen und verarbeiten.
Einführung in PL / SQL cursor FÜR LOOP-Anweisung
Der Cursor FOR LOOP
Anweisung ist eine elegante Erweiterung der numerischenFOR LOOP
Anweisung.
Die numerische FOR LOOP
führt den Hauptteil einer Schleife einmal für jeden ganzzahligen Wert in einem bestimmten Bereich aus., Ebenso führt der Cursor FOR LOOP
den Hauptteil der Schleife einmal für jede Zeile aus, die von der dem Cursor zugeordneten Abfrage zurückgegeben wird.
Eine nette Funktion der Anweisung cursor FOR LOOP
ist, dass Sie jede Zeile von einem Cursor abrufen können, ohne den Ausführungszyklus manuell zu verwalten, dh OPEN
, FETCH
und CLOSE
.
Der Cursor FOR LOOP
erstellt implizit seinen Schleifenindex als Datensatzvariable mit dem Zeilentyp, in den der Cursor zurückkehrt, und öffnet dann den Cursor.,
In jeder Schleifeniteration ruft die Anweisung cursor FOR LOOP
eine Zeile aus der Ergebnismenge in ihren Schleifenindex ab. Wenn keine Zeile abgerufen werden kann, schließt der Cursor FOR LOOP
den Cursor.
Der Cursor wird ebenfalls geschlossen, wenn eine Anweisung innerhalb der Schleife ein Steuerelement außerhalb der Schleife überträgt, z. B. EXIT
und GOTO
oder eine Ausnahme auslöst.,
Das Folgende veranschaulicht die Syntax des Cursors FOR LOOP
Anweisung:
1) Datensatz
Die record
ist der Name des Index, den der Cursor FOR LOOP
Anweisung implizit als Datensatzvariable des Cursortyps.
Dierecord
Variable ist lokal für den CursorFOR LOOP
Anweisung. Dies bedeutet, dass Sie es nur innerhalb der Schleife referenzieren können, nicht außerhalb., Nachdem der Cursor FOR LOOP
Anweisungsausführung endet, wird die record
Variable undefiniert.
2) cursor_name
Die cursor_name
ist der Name eines expliziten Cursors, der beim Start der Schleife nicht geöffnet wird.
Beachten Sie, dass Sie neben dem Cursornamen eine SELECT
– Anweisung verwenden können, wie unten gezeigt:
In diesem Fall deklariert, öffnet, ruft und schließt der Cursor FOR LOOP
einen impliziten Cursor., Der implizite Cursor ist jedoch intern; Daher können Sie nicht darauf verweisen.
Beachten Sie, dass Oracle Database einen Cursor FOR LOOP
automatisch so optimiert, dass er ähnlich wie eine BULK COLLECT
Abfrage funktioniert. Obwohl Ihr Code so aussieht, als hätte er jeweils eine Zeile abgerufen, ruft Oracle Database mehrere Zeilen gleichzeitig ab und ermöglicht es Ihnen, jede Zeile einzeln zu verarbeiten.
PL/SQL cursor-FOR-SCHLEIFE Beispiele
schauen wir uns einige Beispiele für die Verwendung der cursor FOR LOOP
– Anweisung, um zu sehen, wie es funktioniert.,
A) PL/SQL cursor-FOR-SCHLEIFE-Beispiel
Das folgende Beispiel deklariert einen expliziten cursor, und setzt es im cursor FOR LOOP
– Anweisung.
In diesem Beispiel ruft die Anweisung SELECT
des Cursors Daten aus der Tabelle products
ab. Die Anweisung FOR LOOP
öffnete, holte jede Zeile in der Ergebnismenge ab, zeigte die Produktinformationen an und schloss den Cursor.,
B) Cursor FÜR SCHLEIFE mit einer SELECT-Anweisung Beispiel
Das folgende Beispiel entspricht dem obigen Beispiel, verwendet jedoch eine Abfrage in einer cursor FOR LOOP
– Anweisung.
In diesem Tutorial haben Sie gelernt, wie Sie mit dem PL / SQL-Cursor FOR LOOP
Daten von einem Cursor abrufen.
- War dieses tutorial hilfreich?
- YesNo