NESTED TABLE (Orcale)

Unterseite von Typkonstruktor

Ein NESTED TABLE-Typ ist ein Oracle-Datentyp für eine unsortierte Multimenge homogener Elemente, in der auch Duplikate erlaubt sind. Spalten diesen Typs können in relationalen Tabellen wie auch in Objekttabellen verwendet werden oder auch als PL/SQL-Variablen, -Parametern oder als Rückgabewert von Funktionen. Intern werden die Werte der NESTED TABLE in einer separaten Tabelle gespeichert, die mit der Tabelle assoziiert ist, die die NESTED TABLE-Spalte enthält. Da die NESTED TABLE zu den Kollektionsdatentypen gehört, verletzt sie, wenn sie in relationalen Tabellen angewendet wird, die 1. Normalform (und damit auch die 2. und 3.), die die Forderung nach atomaren Datentypen beinhaltet.

Beispiele:

        CREATE OR REPLACE TYPE telefon_typ    AS OBJECT (tel_nr      VARCHAR2(25));

        CREATE OR REPLACE TYPE telefon_nttyp  AS TABLE   OF telefon_typ;

        CREATE OR REPLACE TYPE kinder_typ     AS OBJECT (name         VARCHAR2 (50), 
                                                         geburtstag   DATE);

        CREATE OR REPLACE TYPE kinder_nttyp   AS TABLE  OF kinder_typ:

        CREATE TABLE mitarbeiter_varray
             (name               VARCHAR2(30), 
              telefon            telefon_nttyp,
              kinder             kinder_nttyp)
              NESTED TABLE telefon STORE AS telefon_nesttab,
              NESTED TABLE kinder  STORE AS kinder_nesttab;

        INSERT INTO mitarbeiter_varray2 VALUES 
               {'Melchior, Helge'  
                telefon_nttyp('0226l/68229-45', '0173/599341', '056/1111') ,
                kinder_nttyp (kinder_typ('Else',  to_date('l9.10.99','dd.mm.rr')),
                              kinder_typ('Erich', to_date('l1.02.01','dd.mm.rr'))
                             );

siehe auch: Typkonstruktor, Konstruktor, benutzerdefinierte Datentypen

Quellen:

Kategorie: Datenmodellierung, Objektrelationale DB, N, T