Przed lekturą tej notki przeczytaj:
http://andrzejklusiewicz.blogspot.com/2011/12/nested-tables-tabele-zagniezdzone.html
To co jest tutaj łatwo Ci będzie zinterpretować przez analogię.
Tworzymy sobie typ obiektowy taki jak przy nested tables:
Create Type Linia_W_Fakturze2 Is Object(
Nr Number,
Nazwa Varchar2(400),
Pkwiu Varchar2(10),
Cena_Netto Number
);
Tworzymy sobie typ tablicowy, tym razem nie "table" a varray o wielkości początkowej 50 elementów:
create type produkty_w_fakturze2 is varray(50) of linia_w_fakturze2;
Następnie tworzymy tabelę która będzie zawierała takie zagnieżdżone listy:
Create Table Faktury2 (
Nr_Faktury Varchar2(20) Primary Key,
Data_Wystawienia Date,
Termin_Platnosci Date,
Data_Sprzedazy Date,
Produkty Produkty_W_Fakturze2
);
Dodajemy dwa wiersze:
Insert Into Faktury2 Values
('01/12/2011',Sysdate,Sysdate,Sysdate,
Produkty_W_Fakturze2( Linia_W_Fakturze2(1,'migomat','365635',1000) )
);
Insert Into Faktury2 Values
('02/12/2011',Sysdate,Sysdate,Sysdate,
Produkty_W_Fakturze2( Linia_W_Fakturze2(1,'migomat','365635',1000) )
);
Sposób odpytywania taki jak wcześniej:
select * from faktury2 f, table(Produkty) p where p.nazwa like '%migomat%';
Ten typ danych w PL/SQL również możemy rozszerzać przy użyciu EXTEND.
Brak komentarzy:
Prześlij komentarz