Verschachtelte Tabellen in PL/SQL sind eine Art Sammlung, die es Ihnen ermöglicht, eine unbegrenzte Anzahl von Elementen desselben Typs zu speichern. Sie sind besonders nützlich, um Datensätze in einem strukturierten Format zu speichern, was sie ideal für Szenarien macht, in denen Sie mehrere Zeilen zusammengehöriger Daten verwalten müssen.
Einfache Definition
Verschachtelte Tabelle: Eine verschachtelte Tabelle ist ein Sammlungstyp, der eine beliebige Anzahl von Elementen (des gleichen Datentyps) enthalten kann. Im Gegensatz zu VARRAYs können verschachtelte Tabellen dünn besetzt sein, was bedeutet, dass sie Lücken in ihrer Indizierung aufweisen können.
Syntax und Struktur
Syntax
TYP type_name ALS TABELLE DES element_type ERSTELLEN ODER ERSETZEN;
Typname: Name des verschachtelten Tabellentyps.
element_type: Der Datentyp der Elemente in der verschachtelten Tabelle (z. B. VARCHAR2, NUMBER oder ein Objekttyp).
Variablenname Typname;
EXTEND(n): Erhöht die Größe der verschachtelten Tabelle um n Elemente.
TRIM(n): Reduziert die Größe der verschachtelten Tabelle um n Elemente.
DELETE(i): Entfernt das Element am Index i.
COUNT: Gibt die Anzahl der Elemente in der verschachtelten Tabelle zurück.
Beispielbeispiel: Verschachtelte Tabelle mit Wochentagen
Hier ist ein umfassendes Beispiel, das zeigt, wie man eine verschachtelte Tabelle für die Wochentage erstellt, sie füllt und den Inhalt anzeigt.
Schritt 1: Erstellen Sie einen verschachtelten Tabellentyp
Zuerst definieren wir einen verschachtelten Tabellentyp, der die Namen der Tage enthält.
ERSTELLEN ODER ERSETZEN SIE DEN TYP DaysOfWeek ALS TABELLE VON VARCHAR2(15);
Schritt 2: Deklarieren und füllen Sie die verschachtelte Tabelle
Als nächstes deklarieren wir eine Variable dieses Typs und füllen sie mit den Wochentagen.
ERKLÄRUNG
Tage DaysOfWeek; -- Deklarieren Sie eine verschachtelte Tabellenvariable
BEGINNEN
-- Initialisieren Sie die verschachtelte Tabelle
Tage := DaysOfWeek();
-- Add elements to the nested table days.EXTEND(7); -- Extend the size by 7 for all days of the week days(1) := 'Monday'; days(2) := 'Tuesday'; days(3) := 'Wednesday'; days(4) := 'Thursday'; days(5) := 'Friday'; days(6) := 'Saturday'; days(7) := 'Sunday'; -- Display the elements in the nested table FOR i IN 1 .. days.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Day ' || i || ': ' || days(i)); END LOOP;
ENDE;
/
Detaillierte Erklärung
Die Anweisung CREATE OR REPLACE TYPE DaysOfWeek AS TABLE OF VARCHAR2(15); definiert einen neuen verschachtelten Tabellentyp namens DaysOfWeek, der Zeichenfolgen mit einer Länge von bis zu 15 Zeichen enthalten kann. Dieser Typ wird zum Speichern der Namen der Tage verwendet.
Im DECLARE-Block werden Tage als Variable vom Typ DaysOfWeek deklariert. Diese Variable enthält unsere Sammlung von Tagen.
Tage := DaysOfWeek(); Initialisiert die Tagesvariable als leere verschachtelte Tabelle vom Typ DaysOfWeek.
days.EXTEND(7); Erhöht die Größe der verschachtelten Tagestabelle, um 7 Elemente aufzunehmen (eines für jeden Wochentag).
Jeder Tag ist dem entsprechenden Index zugeordnet:
Tage(1) := 'Montag';
Tage(2) := 'Dienstag';
Tage(3) := 'Mittwoch';
Tage(4) := 'Donnerstag';
Tage(5) := 'Freitag';
Tage(6) := 'Samstag';
Tage(7) := 'Sonntag';
Eine FOR-Schleife durchläuft die verschachtelte Tagestabelle unter Verwendung von days.COUNT, um zu bestimmen, wie viele Elemente vorhanden sind.
DBMS_OUTPUT.PUT_LINE gibt jeden Tag zusammen mit seinem Index aus.
Ausgabe
Wenn dieser Block ausgeführt wird, lautet die Ausgabe:
Tag 1: Montag
Tag 2: Dienstag
Tag 3: Mittwoch
Tag 4: Donnerstag
Tag 5: Freitag
Tag 6: Samstag
Tag 7: Sonntag
Fazit
Dieses Beispiel zeigt, wie eine verschachtelte Tabelle in PL/SQL definiert, gefüllt und bearbeitet wird. Verschachtelte Tabellen sind vielseitige Strukturen, mit denen Sie Datensammlungen effizient verwalten können. Sie können in einer Vielzahl von Anwendungen verwendet werden, in denen eine dynamische Datenverwaltung erforderlich ist.
Das obige ist der detaillierte Inhalt vonSammlung verschachtelter Tabellen in PL/SQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!