ZSBD-2st-1.2-lab8.tresc-1.3-Slajd22

Z Studia Informatyczne
Wersja z dnia 10:33, 10 sie 2006 autorstwa PKrzyzagorski (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Zagnieżdżone tabele – SQL – cd.

Zagnieżdżone tabele – SQL – cd.


Przykład (1) przedstawiony na slajdzie pokazuje jak można odczytać całą kolekcję z tabeli. Jak łatwo zauważyć, zarówno sposób odczytania, jak i sposób wyświetlenia przez sqlplus niczym się nie różni od tablic o zmiennej długości.

Dużo ciekawszym przykładem jest przykład (2). W przeciwieństwie do tablic o zmiennym rozmiarze, w przypadku zagnieżdżonych tabel możliwy jest dostęp za pomocą poleceń DML do pojedynczych elementów kolekcji. Umożliwia to operator TABLE. Operator TABLE zamienia dowolną kolekcję, która jest zagnieżdżoną tabelą, na tabelę, która może zostać odczytana np. za pomocą polecenia SELECT. Zacznijmy od analizy klauzuli FROM przykładu (2). W klauzuli tej umieszczono operator TABLE, któremu jako parametr przekazano podzapytanie. Wynikiem tego podzapytania jest kolekcja towarów zakupionych w dniu 04/05/2006. Oczywiście, w praktycznych zastosowaniach tego typu warunek selekcji spowodowałby, że podzapytanie zwróci więcej niż jedną krotkę (co skończyłoby się błędem), ale w naszym przykładzie taki warunek selekcji jest wystarczający. Operator TABLE zamienia zwróconą przez podzapytanie kolekcję na tabelę, której nadawany jest alias X. Ponieważ atrybut w utworzonej przez operator TABLE tabeli nie posiada nazwy, należy użyć operatora VALUE, aby odczytać wartości z tej tabeli. W tym kontekście, operator VALUE reprezentuje wartość zapisaną w tabeli utworzonej przez operator TABLE. Podobnie jak w przypadku odczytywania obiektów z tabeli obiektowej, parametrem operatora VALUE jest alias tabeli z której odczytywane są dane. Ponieważ VALUE reprezentuje wartości z zagnieżdżonej tabeli, to można go umieścić w klauzuli SELECT. W wyniku zapytania (2) zostaną odczytane krotki, z których każda odpowiada jednemu elementowi kolekcji zapisanej w obiekcie typu ZAKUP z datą 04/05/2006.


<< Poprzedni slajd | Spis treści | Następny slajd >>