Oracle
 sql >> Datenbank >  >> RDS >> Oracle

FORALL-Anweisung mit unterer und oberer Grenze in der Oracle-Datenbank

FORALL-Anweisung mit Unter- und Obergrenze

Im vorherigen Tutorial haben wir gelernt, dass es drei gebundene Klauseln gibt, die wir mit der FORALL-Anweisung verwenden können, um die DML-Abfragen zu optimieren. Von diesen drei gebundenen Klauseln werden wir in diesem Tutorial die erste untersuchen, d. H. Lower und Upper Bound.

Was ist die Unter- und Obergrenze der FORALL-Anweisung?

Wie der Name schon sagt, müssen wir mit der Lower &Upper Bound-Klausel den gültigen Bereich fortlaufender Indexnummern der Sammlung angeben.

Gibt es eine Regel für die Verwendung von Lower &Upper Bound-Klauseln mit der FORALL-Anweisung?

Unter- und Obergrenzenklauseln können nur verwendet werden, wenn die Sammlung, auf die Sie in Ihrer DML-Anweisung verweisen, dicht ist . Wenn die referenzierende Sammlung spärlich ist, möchten Sie vielleicht andere gebundene Klauseln verwenden, die wir in den zukünftigen Tutorials besprechen werden.

Um Ihr Programm erfolgreich auszuführen, müssen Sie sicherstellen, dass Sie alle Regeln der FORALL-Anweisung zusammen mit der oben erwähnten Regel der Unter- und Obergrenze befolgt haben. Hier erfahren Sie mehr über die FORALL-Anweisung.

Lassen Sie uns ein Beispiel für eine FORALL-Anweisung mit Lower &Upper Bound-Klausel in Oracle Database ausführen.

Aber bevor wir auf das Beispiel springen, müssen wir eines verstehen; Die FORALL-Anweisung funktioniert genauso wie die Bulk-Collect-Klausel, jedoch auf umgekehrte Weise. Zum Beispiel haben wir mit der Massenerfassung die Daten aus den Tabellen abgerufen und in der Sammlung gespeichert, aber jetzt werden wir mit der FORALL-Anweisung die Daten aus der Sammlung abrufen und in der Tabelle speichern.

In dieser Demonstration werden wir drei Dinge tun, um das Konzept der FORALL-Anweisung mit Lower &Upper Bound-Klausel zu verstehen. Diese drei Dinge sind:

  1. Erstelle eine Tabelle.

Zuerst erstellen wir eine Tabelle. Wir werden diese Tabelle verwenden, um die Daten auszugeben, die wir aus der Sammlung abrufen werden.

  1. Erstellen und füllen Sie die Sammlung.

Dieser Schritt ist optional, wenn Sie bereits eine Sammlung mit einigen Daten haben. Wenn nicht, dann folge mir. Für die Demonstration werde ich eine Sammlung erstellen und füllen.

  1. Schreiben Sie die FORALL-Anweisung.

Sobald Sie Ihre Tabelle und Sammlung fertig haben, schreiben Sie die FORALL-Anweisung. Für die Demonstration werde ich eine FORALL-Anweisung schreiben, die die Daten aus der Sammlung holt und in der Tabelle speichert. Das wird auch eine Demonstration der FORALL-Anweisung mit INSERT DML sein.

Lassen Sie uns das Beispiel der PL/SQL FORALL-Anweisung mit Unter- und Obergrenze ausführen.

SET SERVEROUTPUT ON;
CREATE TABLE tut_77 (
    Mul_tab    NUMBER(5)
);

Das wird unsere Tabelle sein, die die Daten enthalten wird. Als nächstes schreiben wir den PL/SQL-Block.

DECLARE
	-- Declare the collection
    TYPE My_Array IS TABLE OF NUMBER INDEX BY PLS_INTEGER;
    col_var My_Array;
	--Declare a variable for holding the total number of records of the table
    tot_rec NUMBER;
BEGIN
    --Populate the collection
    FOR i IN 1..10 LOOP
        col_var (i) := 9*i;
    END LOOP;
    -- Write the FORALL statement.
    FORALL idx IN 1..10
        INSERT INTO tut_77 (mul_tab)
        VALUES (col_var (idx));
    --Get the total number of records from the table     
    SELECT count (*) INTO tot_rec FROM tut_77;
    DBMS_OUTPUT.PUT_LINE ('Total records inserted are '||tot_rec);
END;
/

Erklärung des Deklarationsabschnitts

Im Deklarationsabschnitt In diesem Code haben wir ein assoziatives Array mit dem Namen „my_Array“ zusammen mit seiner Sammlungsvariablen deklariert. Auch eine zusätzliche Variable mit dem Namen tot_rec vom Datentyp Zahl. Diese Variable enthält die Gesamtzahl der Datensätze, die in unserer Tabelle gespeichert sind.

Im Ausführungsbereich haben wir drei Aufgaben erledigt. Erstens haben wir unsere Sammlung mit der FOR-Schleife mit der Multiplikationstabelle von 9 gefüllt. Zweitens haben wir mit der FORALL-Anweisung die Daten aus der Sammlung genommen und in der von uns erstellten Tabelle gespeichert. Drittens zeigten wir unter Verwendung der Variablen tot_rec mit der SELECT-INTO-Anweisung die Gesamtzahl der in der Tabelle gespeicherten Zeilen zurück.

Ich habe auch ein Video zum gleichen Thema gemacht, in dem ich diesen obigen Code Zeile für Zeile im Detail erklärt habe. Ich empfehle Ihnen, es zu überprüfen.

Das ist das Tutorial zur PL/SQL FORALL-Anweisung mit Lower &Upper Bound-Klausel in Oracle Database. Ich hoffe, Sie haben es genossen, zuzuschauen. Bitte achten Sie darauf, diesen Blog mit Ihren Freunden in Ihren sozialen Medien zu liken und zu teilen. Sie können mich auch auf meiner Facebook-Seite erreichen.

Danke und einen schönen Tag.