Úvod do zbierok PL / SQL

V prvom rade, podobne ako iné moderné programovacie jazyky, PL / SQL poskytuje programátorom tiež možnosť využívať zbierky PL / SQL. Vo všeobecnosti je teda kolekcia dátovou štruktúrou, ktorá má usporiadanú skupinu prvkov rovnakého typu údajov a k týmto prvkom sa pristupuje prostredníctvom indexov podľa konkrétnych požiadaviek. Bežne používané zbierky vo väčšine programovacích jazykov sú polia, množiny, zoznamy a fronty atď.

Zbierka PL / SQL poskytuje programátorovi aj užívateľovi mnoho výhod pri ukladaní a prístupe k údajom podobných typov údajov v aplikácii. Ak je potrebné údaje spracovať naraz alebo spracovať veľké množstvo údajov, sú veľmi užitočné kolekcie PL / SQL. Tiež znižuje veľkosť a rýchlosť spracovania pri ukladaní údajov a prístupe k prvkom. Prvky v kolekciách sú ľahko dostupné prostredníctvom slučiek a indexov. Na rozdiel od polí v iných programovacích jazykoch PL / SQL podporuje iba jednorozmerné kolekcie a údaje v kolekciách sú identifikované indexmi (tiež nazývanými index v iných jazykoch). Každý prvok je prístupný a spracovávaný prostredníctvom tohto jedinečného indexu.

Typy zbierok PL / SQL

Kolekcie PL / SQL sú 3 typov, ktoré sú uvedené nižšie so syntaxou:

Vnorené tabuľky

Vnorená tabuľka je kolekcia PL / SQL, ktorej veľkosť nie je pevne stanovená. Je to ako jednorozmerné pole s výnimkou skutočnosti, že veľkosť je v poliach stanovená a môže byť hustá aj riedka. Programátor musí vždy pred použitím pamäte rozšíriť pamäť pomocou EXTEND dolného indexu v vnorenej tabuľke, ktorý začína celým číslom '1'.

Vnorené tabuľky patria do trvalých kolekcií PL / SQL, čo znamená, že sa dajú ďalej použiť pri ukladaní do databázy. Programátor môže tiež odstrániť prvok poľa a urobiť tabuľku riedkou, čo znamená, že vnorené tabuľky môžu byť husté aj riedke. Vnorené tabuľky možno deklarovať buď vo vnútri bloku PL / SQL alebo na úrovni schémy.

Pretože vnorené tabuľky nie sú nijako limitované, patria do kategórie Unbounded kolekcií PL / SQL.

syntaxe:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Polia s premenlivou veľkosťou alebo VARRAY

VARRAY je kolekcia PL / SQL, v ktorej je veľkosť kolekcie stanovená tak, ako je definované v jej definícii, takže VARRAY sa nazývajú ohraničené. Prvky v poliach sa zaplňujú postupne od dolného indexu 1. Na rozdiel od vnorených tabuliek, varianty poskytujú menšiu flexibilitu, pretože sú husté. iba. Programátor preto nemôže vymazať žiadny prvok medzi tým, či už je vymazaný celý variant alebo môže byť odrezaný od konca. Prístup k variantom musí byť prístupný a ukladaný postupne. Môže sa definovať buď vo vnútri bloku PL / SQL alebo na úrovni schémy. Podobne ako vnorené tabuľky, aj varrays patrí do kategórie trvalých kolekcií, takže ich možno znova použiť a uložiť do databázy.

syntaxe:

TYPE typ_name IS VARRAY OF element_data_type;

Asociatívne polia

Ako už názov napovedá, asociatívne polia sa používajú na udržanie hodnôt v pároch kľúč - hodnota. Použitý kľúč môže byť buď reťazec alebo celé číslo. Asociatívne polia sa tiež nazývajú tabuľka Index-by table. Táto zbierka môže byť hustá alebo riedka. V asociatívnych poliach nie je veľkosť poľa na začiatku pevne stanovená a programátor ich pred použitím nemusí inicializovať. Asociatívne pole spadá do kategórie netrvalých kolekcií, čo znamená, že nie sú uložené v databáze a nemožno ich znovu použiť, takže sú definované vo vnútri bloku PL / SQL a používajú sa iba v tejto konkrétnej relácii. Tieto polia patria do kategórie neobmedzených zbierok.

syntaxe:

TYPE typ_name IS TABLE OF element_data_type;

Metódy zberu

PL / SQL poskytuje niekoľko preddefinovaných metód na uľahčenie práce so zbierkami. Niektoré z metód sú uvedené nižšie:

S.No.Názov metódypopis
1.COUNTVracia počet prvkov prítomných v kolekcii
2.NAJPRVVráti najmenšie (prvé) indexové číslo v kolekcii pre celočíselné predplatné
3.LASTVracia najväčšie (posledné) číslo indexu v kolekcii pre celočíselné predplatné.
4.Existuje (n)Používa sa na kontrolu, či je konkrétny prvok v kolekcii alebo nie. Ak je v kolekcii prítomný n-tý element, vráti hodnotu PRAVDA, ak nie, FALSE.
5.Doterajší stav (n)Vracia číslo indexu, ktoré je predchodcom indexu (n) zadaného používateľom v kolekcii.
6.NEXT (n)Vracia číslo indexu, ktoré je nástupcom indexu (n) zadaného používateľom v kolekcii.
7.TRIMPoužíva sa na odstránenie prvkov zo zbierky. TRIM odstráni posledný prvok zo zbierky a TRIM (n) odstráni posledný prvok n z konca kolekcie.
8.DELETEPoužíva sa na odstránenie všetkých prvkov z danej kolekcie. Po odstránení všetkých prvkov nastaví počet kolekcií na 0
9.DELETE (m, n)Používa sa v prípade asociatívnych polí a indexovaných tabuliek na odstránenie všetkých prvkov v rozsahu od m do n. Ak m je väčšie ako n, vráti hodnotu null.
10.LIMITPoužíva sa na kontrolu maximálnej veľkosti zbierky.

Výnimky z kolekcie

Nižšie sú uvedené niektoré z výnimiek, ktoré s najväčšou pravdepodobnosťou vzniknú pri práci so zbierkami.

Názov výnimkyScenár, v ktorom sa vyskytne výnimka
NEBOLI NÁJDENÉ ŽIADNE DÁTAVýnimka vzniká, keď index, ktorý odkazuje na prvok, ktorý je vymazaný a už neexistuje.
VALUE_ERRORVýnimka nastane, keď hodnota stĺpcov, ktoré sa pokúšajú získať prístup, nie je konvertibilná na typ kľúča alebo keď je dolný index null
COLLECTION_IS_NULLVýnimky vznikajú pri spracovaní automaticky neplatnej zbierky
SUBSCRIPT_BEYOND_CO UNTVýnimka nastane, keď index predstavuje maximálny počet prvkov v kolekcii.
SUBSCRIPT_OUTSIDE_LIM ITVýnimka vzniká pri pokuse o referenciu pomocou indexového čísla, ktoré je mimo zákonného rozsahu.
TOO_MANY_ROWSVýnimka nastane, keď príkaz SELECT do príkazu vráti viac ako 1 riadok.

Výhody zbierok v PL / SQL

Niektoré z výhod kolekcií PL / SQL sú uvedené nižšie:

  • Okrem toho je jednou z najväčších výhod kolekcií to, že zlepšuje výkon systému ukladaním statických údajov do vyrovnávacej pamäte, ku ktorým je potrebné pravidelne pristupovať.
  • Najdôležitejšie je, že kolekcie sú užitočné pri práci s veľkým súborom údajov s rovnakým typom údajov, na ktorom musí užívateľ vykonať viac operácií DML.
  • Použitím jednej kolekčnej premennej môžeme znížiť viacnásobné množstvo premenných používaných na ukladanie rôznych hodnôt, a teda na šetrenie pamäte.
  • Vykonávanie rôznych operácií, ako je ukladanie a spracovanie údajov, je ľahké prostredníctvom už poskytnutých metód zberu PL / SQL.

záver

Prostredníctvom vyššie uvedeného popisu môžete získať predstavu o tom, čo je kolekcia PL / SQL a metódy, ktoré možno použiť v kolekciách PL / SQL. Predtým, ako v programe použije akýkoľvek typ kolekcie PL / SQL, vývojár musí najskôr dôkladne premyslieť scenár skôr, ako vyberie akýkoľvek typ. Hoci práca v kolekciách PL / SQL nie je náročná, môžu sa vyskytnúť určité výnimky v rôznych bodoch, ktoré si musí programátor poznať a vie, ako ich riešiť.

Odporúčané články

Toto je sprievodca zbierkami PL / SQL. Tu diskutujeme syntax, typy, metódy a výnimky zbierok PL / SQL spolu s výhodami. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Kurzory v PL / SQL
  2. Príkaz CASE v PL / SQL
  3. Otázky týkajúce sa rozhovoru Oracle PL / SQL
  4. Príkazy PL / SQL