NESTED TABLE (Orcale)
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:
- Oracle® Database Object-Relational Developer's Guide 11g Release 2 (11.2), E11822-03, http://download.oracle.com/docs/cd/E11882_01/appdev.112/e11822.pdf
- Oracle® Database SQL Language Reference 11g Release 2 (11.2), E10592-04, http://download.oracle.com/docs/cd/E11882_01/server.112/e10592.pdf
- Oracle® Database PL/SQL Language Reference 11g Release 2 (11.2), E10472-06, http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10472.pdf
Kategorie: Datenmodellierung, Objektrelationale DB, N, T