Ú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ódy | popis |
1. | COUNT | Vracia počet prvkov prítomných v kolekcii |
2. | NAJPRV | Vráti najmenšie (prvé) indexové číslo v kolekcii pre celočíselné predplatné |
3. | LAST | Vracia 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. | TRIM | Použí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. | DELETE | Použí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. | LIMIT | Použí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ýnimky | Scenár, v ktorom sa vyskytne výnimka |
NEBOLI NÁJDENÉ ŽIADNE DÁTA | Výnimka vzniká, keď index, ktorý odkazuje na prvok, ktorý je vymazaný a už neexistuje. |
VALUE_ERROR | Vý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_NULL | Výnimky vznikajú pri spracovaní automaticky neplatnej zbierky |
SUBSCRIPT_BEYOND_CO UNT | Výnimka nastane, keď index predstavuje maximálny počet prvkov v kolekcii. |
SUBSCRIPT_OUTSIDE_LIM IT | Výnimka vzniká pri pokuse o referenciu pomocou indexového čísla, ktoré je mimo zákonného rozsahu. |
TOO_MANY_ROWS | Vý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 -
- Kurzory v PL / SQL
- Príkaz CASE v PL / SQL
- Otázky týkajúce sa rozhovoru Oracle PL / SQL
- Príkazy PL / SQL