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

PL/SQL-Sammlung:Verschachtelte Tabelle in Oracle-Datenbank

So erstellen Sie eine verschachtelte Tabelle in einem PL/SQL-Block

Willkommen zum zweiten Tutorial der PL/SQL Collection-Reihe. In diesem Tutorial lernen wir den ersten Sammlungstyp kennen, der „Nested Table“ ist. Eine Tabelle in einer Tabelle ist die einfachste Definition, die man sich vorstellen kann, und sie ist in jeder Hinsicht korrekt, da eine Tabelle, die in eine andere Tabelle eingebettet ist, genau das ist, was der Name verschachtelte Tabelle vermuten lässt.

Aber wenn wir die Sammlung „Nested Table“ auf eine ausgefallenere und technischere Weise definieren müssen, dann können wir sagen, dass Nested Tables eindimensionale Strukturen sind, die von Natur aus dauerhaft und unbegrenzt sind. Sie sind sowohl in SQL als auch in PL/SQL zugänglich und können in Tabellen, Datensätzen und Objektdefinitionen verwendet werden. Da es sich um eine unbegrenzte PL/SQL-Sammlung handelt, kann sie eine beliebige Anzahl von Elementen in einer zufällig geordneten Menge enthalten.

Definition
Verschachtelte Tabellen sind eindimensionale Strukturen, die dauerhaft und unbegrenzt sind. Sie sind sowohl in SQL als auch in PL/SQL zugänglich und können in Tabellen, Datensätzen und Objektdefinitionen verwendet werden. Da es sich um eine unbegrenzte PL/SQL-Sammlung handelt, kann sie eine beliebige Anzahl von Elementen in einer ungeordneten Menge enthalten.

Empfohlene Lektüre:Einführung in die PL/SQL-Sammlung

Eine verschachtelte Tabelle kann innerhalb des PL/SQL-Blocks oder in der Datenbank als Sammlungsobjekt (Schema-Objekt) erstellt werden. Im Fall der vorherigen verhält sich die verschachtelte Tabelle wie ein eindimensionales Array ohne Indextyp oder Obergrenze.

Konzentrieren wir uns also vorerst darauf, wie man eine verschachtelte Tabelle innerhalb eines PL/SQL-Blocks erstellt, und überlassen den Rest dem nächsten Tutorial.

Syntax zum Erstellen verschachtelter Tabellen

DECLRE 
TYPE nested_table_name IS TABLE OF element_type [NOT NULL];

Genau diese Syntax habe ich in meinem Video-Tutorial auf meinem YouTube-Kanal ausführlich erklärt. Ich empfehle Ihnen dringend, sich dieses Video anzusehen.

Beispiel:Wie erstelle ich eine verschachtelte Tabelle in einem PL/SQL-Block?

Das folgende Beispiel dient nur dazu, zu demonstrieren, wie man eine verschachtelte Tabelle erstellt, es ist nichts Besonderes daran.

SET SERVEROUTPUT ON;
DECLARE
   TYPE my_nested_table   IS TABLE OF number;
    var_nt  my_nested_table :=  my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
   DBMS_OUTPUT.PUT_LINE ('Value Stored at index 1 in NT is ' ||var_nt (1)); 
   DBMS_OUTPUT.PUT_LINE ('Value Stored at index 2 in NT is ' ||var_nt (2));
   DBMS_OUTPUT.PUT_LINE ('Value Stored at index 3 in NT is ' ||var_nt (3));
END;
 /

Das obige Beispiel ist ein sehr einfaches, in dem wir eine verschachtelte Tabelle erstellt und ihr den Namen „my_nested_table“ (Zeile Nummer 3) gegeben haben. In der nächsten Zeile (Zeile Nummer 4) haben wir eine Instanz derselben Sammlung erstellt und sie verwendet, um die verschachtelte Tabelle zu initialisieren und einige Daten darin zu speichern. Im Ausführungsteil greifen wir einzeln über die Indexnummer auf die gespeicherten Daten zu, so wie wir es früher in Arrays gemacht haben.

Anstatt einzeln manuell über den Index auf die Daten zuzugreifen, können wir Schleifen verwenden und jedes Element der verschachtelten Auflistungstabelle durchlaufen.

 SET SERVEROUTPUT ON;
 DECLARE
   TYPE my_nested_table   IS TABLE OF number;
   var_nt  my_nested_table :=  my_nested_table (9,18,27,36,45,54,63,72,81,90);
 BEGIN
   FOR i IN 1..var_nt.COUNT
   LOOP
     DBMS_OUTPUT.PUT_LINE ('Value stored at index '||i||'is '||var_nt(i));
   END LOOP;
 END;
 /

Das ist ein weiteres Beispiel dafür, wie man eine verschachtelte Tabelle erstellt, in der wir die Daten durchlaufen und sie dem Benutzer mit einer For-Schleife anzeigen.

Das ist es, wie man verschachtelte Tabellen in PL/SQL-Blöcken erstellt. Bleiben Sie dran, denn im nächsten Tutorial lernen wir, wie Sie verschachtelte Tabellen als Datenbanksammlungsobjekte erstellen und welche Datenwörterbuchansichten Sie verwenden können, um die Informationen der in Ihrer Datenbank gespeicherten verschachtelten Tabellen abzurufen.

Das ist alles. Danke fürs Lesen und einen schönen Tag!