PL SQL-Tabellentypen sind eigentlich Sammlungen, wie ein Array. Mit Hilfe von PL SQL Collections können Sie Massendaten effizient verarbeiten. In diesem Beitrag werde ich Ihnen sehr grundlegende und am häufigsten verwendete Befehle für PL SQL-Tabellentypsammlungen beibringen. Unten sehen Sie den Tabellentyp im Oracle PL SQL-Beispiel.
Zuerst müssen Sie es im Deklarationsabschnitt des PL SQL-Blocks deklarieren. Hier ist die Syntax mit Beispiel:
Tabellentyp in Oracle PL SQL-Beispiel
1. Deklarieren Sie PL SQL-Tabellentypen
Type any_table_type is table of emp%rowtype index by binary_integer; emp_rec any_table_type;
Die obigen Befehle deklarieren den Tabellentyp any_table_type des Tabellenzeilentyps emp und initialisieren ihn dann mit emp_rec. Nach der Deklaration können Sie ihm die Werte manuell zuweisen. Unten ist das Beispiel:
2. PL SQL-Tabellentypen Werte zuweisen
set serveroutput on; declare Type any_table_type is table of emp%rowtype index by binary_integer; emp_rec any_table_type; begin emp_rec(1).ename := 'abc'; /* assigning values */ emp_rec(2).ename := 'xyz'; dbms_output.put_line(emp_rec(1).ename); /* accessing values */ dbms_output.put_line(emp_rec(2).ename); end;
Da PL SQL-Tabellen Arrays ähnlich sind, sollten die Werte wie oben gezeigt durch Angabe der Array-Elementnummer zugewiesen werden. Im Folgenden finden Sie ein Beispiel zum Löschen aus PL SQL-Tabellentypsammlungen.
3. Elemente aus PL SQL-Tabellentypen löschen
set serveroutput on; declare Type any_table_type is table of emp%rowtype index by binary_integer; emp_rec any_table_type; begin emp_rec(1).ename := 'abc'; emp_rec(2).ename := 'xyz'; emp_rec.delete(1); /* will delete first element */ for i in emp_rec.first .. emp_rec.last loop /* loop through the array */ dbms_output.put_line(emp_rec(i).ename); end loop; end;
Das obige Beispiel löscht das erste Element und druckt nur das zweite. Wenn Sie den obigen Block ausführen, lautet die Ausgabe:
xyz
PL/SQL-Prozedur erfolgreich abgeschlossen.
Um alle Elemente aus dem PL SQL-Tabellentyp zu löschen, sehen Sie das folgende Beispiel:
emp_rec.delete;
4. Füllen von PL SQL-Tabellentypen mit Bulk Collect
Unten ist der Tabellentyp im Oracle-PL-SQL-Beispiel, um die Daten aus der emp-Tabelle abzurufen, und dann wird der PL-SQL-Tabellentyp mit Bulk Collect gefüllt und dann die emp-Tabelle mit FORALL aktualisiert. Hier ist das Beispiel:
set serveroutput on; DECLARE CURSOR c IS SELECT * FROM emp; TYPE any_table_type IS TABLE OF emp%ROWTYPE INDEX BY BINARY_INTEGER; emp_rec any_table_type; BEGIN OPEN c; FETCH c BULK COLLECT INTO emp_rec; CLOSE c; FORALL i IN emp_rec.FIRST .. emp_rec.LAST UPDATE emp SET comm = emp_rec (i).sal * 10 / 100 WHERE empno = emp_rec (i).empno; COMMIT; END;
Sie können auch mein PL SQL Procedure Tool überprüfen, um das Skript für Ihre Entwicklung zu generieren.
-
Anonymisieren Sie Ihre Plandetails nativ im Plan Explorer
-
Verwenden der MySQL Galera-Cluster-Replikation zum Erstellen eines geografisch verteilten Clusters:Teil Eins
-
Lösungen für Herausforderungen beim Zahlenreihengenerator – Teil 5
-
Bereitstellen von MariaDB Sharding mit Spider unter Verwendung von ClusterControl