poniedziałek, 12 grudnia 2011

Varray. Tabele zagnieżdżone o stałej długości.

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