Wprowadzenie do kolekcji PL / SQL

Po pierwsze, podobnie jak inne współczesne języki programowania, PL / SQL zapewnia również programistom możliwość korzystania z kolekcji PL / SQL. Ogólnie rzecz biorąc, kolekcja jest strukturą danych posiadającą uporządkowaną grupę elementów tego samego typu danych, a do tych elementów można uzyskać dostęp za pośrednictwem indeksów zgodnie ze szczegółowymi wymaganiami. Najczęściej używanymi kolekcjami w większości języków programowania są tablice, zestawy, listy i kolejki itp.

Kolekcja PL / SQL zapewnia wiele korzyści zarówno dla programisty, jak i użytkownika, podczas przechowywania i uzyskiwania dostępu do danych podobnych typów danych w aplikacji. Gdy zachodzi potrzeba przetwarzania danych jednocześnie lub obsługi dużej ilości danych, zbiory PL / SQL są bardzo przydatne. Zmniejsza to również rozmiar i szybkość przetwarzania podczas przechowywania danych i uzyskiwania dostępu do elementów. Do elementów w kolekcjach można łatwo uzyskać dostęp za pośrednictwem pętli i indeksów. W przeciwieństwie do tablic w innych językach programowania, PL / SQL obsługuje tylko kolekcje jednowymiarowe, a dane w kolekcjach są identyfikowane przez indeksy dolne (zwane również indeksem w innych językach). Dostęp do każdego elementu i przetwarzanie odbywa się za pośrednictwem tego unikalnego indeksu dolnego.

Rodzaje kolekcji PL / SQL

Kolekcje PL / SQL są 3 typów, które podano poniżej ze składnią:

Tabele zagnieżdżone

Tabela zagnieżdżona to kolekcja PL / SQL, w której rozmiar nie jest ustalony. Jest to więc jednowymiarowa tablica, z wyjątkiem tego, że rozmiar jest ustalony w tablicach i może być zarówno gęsty, jak i rzadki. Programista musi za każdym razem rozszerzać pamięć, zanim użyje jej EXTEND. Indeks dolny w tabeli zagnieżdżonej zaczyna się od liczby całkowitej „1”.

Zagnieżdżone tabele należą do trwałych kolekcji PL / SQL, co oznacza, że ​​można je ponownie wykorzystać, tak jak przechowywane w bazie danych. Programista może również usunąć element tablicy i uczynić tabelę rzadką, co oznacza, że ​​tabele zagnieżdżone mogą być zarówno gęste, jak i rzadkie. Tabele zagnieżdżone można zadeklarować w bloku PL / SQL lub na poziomie schematu.

Ponieważ w tabelach zagnieżdżonych nie ma limitu górnego rozmiaru, należą one do kategorii Nieograniczonych kolekcji PL / SQL.

Składnia:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Tablice o zmiennej wielkości lub VARRAY

VARRAY to kolekcja PL / SQL, w której rozmiar kolekcji jest ustalony zgodnie z definicją w jej definicji, więc VARRAY nazywane są ograniczonymi Elementy w tablicach są wypełniane sekwencyjnie, począwszy od indeksu dolnego 1. W przeciwieństwie do tabel zagnieżdżonych, varrays zapewnia mniejszą elastyczność, ponieważ są gęste tylko. W związku z tym programista nie może usunąć żadnego elementu pomiędzy, ani cały varray zostanie usunięty, ani może zostać przycięty od końca. Dostęp do Varrays należy kolejno przechowywać i przechowywać. Można go zdefiniować w bloku PL / SQL lub na poziomie schematu. Podobnie jak tabele zagnieżdżone, varrays należy do kategorii trwałych kolekcji, dzięki czemu można je ponownie wykorzystać i przechowywać w bazie danych.

Składnia:

TYPE typ_name IS VARRAY OF element_data_type;

Tablice asocjacyjne

Jak sama nazwa wskazuje, tablice asocjacyjne są używane do przechowywania wartości w parach klucz-wartość. Używany klucz może być ciągiem lub liczbą całkowitą. Tablice asocjacyjne są również nazywane tabelą indeksu według. Ta kolekcja może być gęsta lub rzadka. W tablicach asocjacyjnych rozmiar tablicy nie jest ustalony na początku, a programista nie musi ich inicjalizować przed użyciem. Tablica asocjacyjna należy do kategorii nietrwałych kolekcji, co oznacza, że ​​nie są one przechowywane w bazie danych i nie można ich ponownie użyć, więc są zdefiniowane w bloku PL / SQL i są używane tylko w tej konkretnej sesji. Te tablice należą do kategorii kolekcji nieograniczonych.

Składnia:

TYPE typ_name IS TABLE OF element_data_type;

Metody zbierania

PL / SQL udostępnia pewne predefiniowane metody ułatwiające pracę z kolekcjami. Niektóre z metod podano poniżej:

S.No.Nazwa metodyOpis
1.LICZYĆZwraca liczbę elementów obecnych w kolekcji
2)PIERWSZYZwraca najmniejszy (pierwszy) numer indeksu w kolekcji dla indeksów całkowitych
3)OSTATNI, UBIEGŁY, ZESZŁYZwraca największy (ostatni) numer indeksu w kolekcji dla indeksów całkowitych.
4ISTNIEJE (n)Służy do sprawdzania, czy dany element jest obecny w kolekcji, czy nie. Zwraca PRAWDA, jeśli n-ty element jest obecny w kolekcji, FALSE, jeśli nie.
5PRZED (n)Zwraca numer indeksu będący poprzednikiem indeksu (n) podanego przez użytkownika w kolekcji.
6.NASTĘPNY (n)Zwraca numer indeksu będący następcą indeksu (n) podanego przez użytkownika w kolekcji.
7TRYMSłuży do usuwania elementów z kolekcji. TRIM usuwa ostatni element z kolekcji, a TRIM (n) usuwa ostatni n element z końca kolekcji.
8USUNĄĆSłuży do usuwania wszystkich elementów z danej kolekcji. Ustawia liczbę kolekcji na 0 po usunięciu wszystkich elementów
9USUŃ (m, n)Jest stosowany w przypadku tablic asocjacyjnych i tabel indeksowanych do usunięcia wszystkich elementów w zakresie od m do n. Zwraca null, jeśli m jest większe niż n.
10LIMITSłuży do sprawdzania maksymalnego rozmiaru kolekcji.

Wyjątki dotyczące kolekcji

Poniżej podano niektóre wyjątki, które mogą wystąpić podczas pracy z kolekcjami.

Nazwa wyjątkuScenariusz, w którym powstaje wyjątek
NIE ZNALEZIONO DANYCHWyjątek powstaje, gdy indeks dolny odnoszący się do elementu, który został usunięty i już nie istnieje.
VALUE_ERRORWyjątek występuje, gdy wartość kolumn próbujących uzyskać dostęp jest nieodwracalna do typu klucza lub gdy indeks dolny jest pusty
COLLECTION_IS_NULLWyjątek stanowią prace nad kolekcją automatycznie zerowaną
SUBSCRIPT_BEYOND_CO UNTWyjątek powstaje, gdy indeks dolny przekracza maksymalną liczbę elementów w kolekcji.
SUBSCRIPT_OUTSIDE_LIM ITWyjątek powstaje, gdy próbuje się odwoływać się przy użyciu numeru indeksu, który jest poza dopuszczalnym zakresem.
TOO_MANY_ROWSWyjątek powstaje, gdy instrukcja SELECT into zwraca więcej niż 1 wiersz.

Zalety kolekcji w języku PL / SQL

Niektóre zalety kolekcji PL / SQL podano poniżej:

  • Poza tym jedną z największych zalet kolekcji jest to, że poprawia wydajność systemu poprzez buforowanie danych statycznych, do których należy regularnie uzyskiwać dostęp.
  • Co najważniejsze, kolekcje są pomocne podczas pracy z dużym zestawem danych o tym samym typie danych, na którym użytkownik musi wykonać wiele operacji DML.
  • Używając jednej zmiennej kolekcjonerskiej, możemy zmniejszyć liczbę zmiennych używanych do przechowywania różnych wartości, a tym samym do oszczędzania pamięci.
  • Wykonywanie różnych operacji, takich jak przechowywanie i przetwarzanie danych, staje się łatwe dzięki już dostarczonym metodom gromadzenia PL / SQL.

Wniosek

Dzięki powyższemu opisowi możesz dowiedzieć się, czym jest kolekcja PL / SQL i jakie metody mogą być używane w kolekcjach PL / SQL. Przed użyciem dowolnego typu kolekcji PL / SQL w programie deweloper musi najpierw głęboko przemyśleć scenariusz, zanim wybierze jakikolwiek typ. Chociaż praca w kolekcjach PL / SQL nie jest trudna, ale mogą wystąpić pewne wyjątki w różnych punktach, o których programista musi wiedzieć i umie sobie z nimi poradzić.

Polecane artykuły

Jest to przewodnik po kolekcjach PL / SQL. Tutaj omawiamy składnię, typy, metody i wyjątki kolekcji PL / SQL wraz z zaletami. Możesz także przejrzeć następujące artykuły, aby dowiedzieć się więcej -

  1. Kursory w PL / SQL
  2. Instrukcja CASE w języku PL / SQL
  3. Pytania do wywiadu Oracle PL / SQL
  4. Polecenia PL / SQL