PL/SQL Cursor FOR LOOP

0 Comments

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


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.