Úvod do sbírek PL / SQL

Zaprvé, stejně jako jiné moderní programovací jazyky, PL / SQL také poskytuje programátorům možnost používat kolekce PL / SQL. Obecně se tedy jedná o datovou strukturu mající uspořádanou skupinu prvků stejného datového typu a k těmto prvkům se přistupuje prostřednictvím indexů podle specifických požadavků. Běžně používané sbírky ve většině programovacích jazyků jsou pole, sada, seznam a fronta atd.

Kolekce PL / SQL poskytuje programátorovi i uživateli mnoho výhod při ukládání a přístupu k datům podobných datových typů v aplikaci. Pokud je třeba zpracovat data najednou nebo zpracovat velké množství dat, jsou velmi užitečné kolekce PL / SQL. Také snižuje velikost a rychlost zpracování při ukládání dat a přístupu k prvkům. K prvkům ve sbírkách lze snadno přistupovat prostřednictvím smyček a indexů. Na rozdíl od polí v jiných programovacích jazycích podporuje PL / SQL pouze jednorozměrné kolekce a data ve sbírkách jsou identifikována odběrateli (nazývanými také index v jiných jazycích). Každý prvek je přístupný a zpracováván prostřednictvím tohoto jedinečného indexu.

Typy sbírek PL / SQL

Kolekce PL / SQL jsou 3 typy, které jsou uvedeny níže se syntaxí:

Vnořené tabulky

Vnořená tabulka je kolekce PL / SQL, ve které není pevná velikost. Je to jako jednorozměrné pole s výjimkou skutečnosti, že velikost je v polích fixována a může být hustá i řídká. Programátor musí vždy před použitím paměti rozšířit paměť pomocí EXTEND Subscript v Vnořené tabulce začíná celým číslem '1'.

Vnořené tabulky spadají do trvalých kolekcí PL / SQL, což znamená, že mohou být znovu použity, jak jsou uloženy v databázi. Programátor může také odstranit prvek pole a učinit tabulku řídkou, což znamená, že vnořené tabulky mohou být husté i řídké. Vnořené tabulky lze deklarovat buď uvnitř bloku PL / SQL nebo na úrovni schématu.

Vzhledem k tomu, že ve Vnořených tabulkách není omezení na horní velikost, spadají do kategorie Neomezené kolekce PL / SQL.

Syntax:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Pole s proměnnou velikostí nebo VARRAY

VARRAY je kolekce PL / SQL, ve které je velikost kolekce stanovena tak, jak je definováno v její definici, takže VARRAY se nazývají ohraničené Prvky v polích se vyplňují postupně od indexu 1. Na rozdíl od vnořených tabulek poskytuje varianty menší flexibilitu, protože jsou husté pouze. Programátor tedy nemůže odstranit žádný prvek mezi nimi, buď je vymazána celá variace, nebo může být odříznuta od konce. Varrays musí být zpřístupněn a uložen postupně. Lze ji definovat buď uvnitř bloku PL / SQL nebo na úrovni schématu. Stejně jako vnořené tabulky spadají varianty do kategorie trvalých kolekcí, takže je lze znovu použít a uložit do databáze.

Syntax:

TYPE typ_name IS VARRAY OF element_data_type;

Asociativní pole

Jak název napovídá, asociativní pole se používají k udržení hodnot ve dvojicích klíč-hodnota. Použitý klíč může být řetězec nebo celé číslo. Asociativní pole se také nazývají tabulka podle indexu. Tato kolekce může být hustá nebo řídká. V asociativních polích není velikost pole na začátku pevně stanovena a programátor je nemusí před použitím inicializovat. Asociativní pole spadá do kategorie netrvalých kolekcí, což znamená, že nejsou uloženy v databázi a nelze je znovu použít, takže jsou definovány uvnitř bloku PL / SQL a jsou použity pouze v této konkrétní relaci. Tato pole patří do kategorie neohraničených sbírek.

Syntax:

TYPE typ_name IS TABLE OF element_data_type;

Metody sběru

PL / SQL poskytuje některé předdefinované metody, které usnadňují práci se sbírkami. Některé z metod jsou uvedeny níže:

S.No.Název metodyPopis
1.POČETVrací počet prvků přítomných ve sbírce
2.ZA PRVÉVrací nejmenší (první) číslo indexu v kolekci pro celočíselné předplatné
3.POSLEDNÍVrátí největší (poslední) číslo indexu v kolekci pro celočíselné předplatné.
4.EXISTUJÍ (n)Slouží ke kontrole, zda je určitý prvek v kolekci přítomen nebo ne. Vrací TRUE, pokud jsou v kolekci přítomny n-té prvky, FALSE, pokud ne.
5.PRIOR (n)Vrací číslo indexu, které je předchůdcem indexu (n) zadaného uživatelem v kolekci.
6.DALŠÍ (n)Vrátí číslo indexu, který je nástupcem indexu (n), který přidělil uživatel v kolekci.
7.TRIMPoužívá se k odebrání prvků ze sbírky. TRIM odstraní poslední prvek z kolekce a TRIM (n) odstraní poslední n prvek z konce kolekce.
8.ODSTRANITSlouží k odstranění všech prvků z dané kolekce. Po odstranění všech prvků nastaví počet kolekcí na 0
9.ODSTRANIT (m, n)Používá se v případě asociativních polí a indexovaných tabulek k odstranění všech prvků v rozsahu od m do n. Vrací null, pokud m je větší než n.
10.OMEZITSlouží ke kontrole maximální velikosti kolekce.

Výjimky z kolekce

Níže jsou uvedeny některé z výjimek, které se při práci se sbírkami pravděpodobně vyskytnou.

Název výjimkyScénář, ve kterém dochází k výjimce
NENALEZENA ŽÁDNÁ DATAVýjimka vzniká, když index, který odkazuje na prvek, který je vymazán a již neexistuje.
VALUE_ERRORVýjimka nastane, když je hodnota sloupců, které se pokoušejí získat přístup, nepřeveditelná na typ klíče nebo je-li index nulový
COLLECTION_IS_NULLVýjimky vznikají při práci na automaticky nulové sbírce
SUBSCRIPT_BEYOND_CO UNTVýjimka vzniká, když index překročí maximální počet prvků v kolekci.
SUBSCRIPT_OUTSIDE_LIM ITVýjimka vzniká, když se pokoušíte odkazovat pomocí indexového čísla, které je mimo zákonný rozsah.
TOO_MANY_ROWSVýjimka nastane, když příkaz SELECT do příkazu vrátí více než 1 řádek.

Výhody sbírek v PL / SQL

Některé z výhod kolekcí PL / SQL jsou uvedeny níže:

  • Kromě toho je jednou z největších výhod sbírek to, že zlepšuje výkon systému ukládáním statických dat do mezipaměti, ke kterým je třeba pravidelně přistupovat.
  • A co je nejdůležitější, kolekce jsou užitečné při práci s velkým datovým souborem, který má stejný typ dat, na kterém uživatel potřebuje provést více operací DML.
  • Použitím jedné proměnné kolekce můžeme redukovat více čísel proměnných používaných pro ukládání různých hodnot a tím i ukládání paměti.
  • Díky již poskytnutým metodám sběru PL / SQL je snadné provádět různé operace, jako je ukládání a zpracování dat.

Závěr

Prostřednictvím výše uvedeného popisu můžete získat představu o tom, co je kolekce PL / SQL a metody, které lze použít ve sbírkách PL / SQL. Před použitím jakéhokoli typu kolekce PL / SQL v programu musí vývojář nejprve důkladně přemýšlet o scénáři, než vybere jakýkoli typ. Přestože práce v kolekcích PL / SQL není obtížná, mohou nastat určité výjimky v různých bodech, které si musí být programátor vědom a ví, jak s nimi zacházet.

Doporučené články

Toto je průvodce kolekce PL / SQL. Zde diskutujeme syntaxi, typy, metody a výjimky kolekce PL / SQL spolu s výhodami. Další informace naleznete také v následujících článcích -

  1. Kurzory v PL / SQL
  2. Příkaz CASE v PL / SQL
  3. Dotazové otázky Oracle PL / SQL
  4. Příkazy PL / SQL