Bevezetés a PL / SQL gyűjteményekbe
Mindenekelőtt, a többi modern programozási nyelvhez hasonlóan, a PL / SQL lehetőséget nyújt a programozók számára a PL / SQL gyűjtemények használatához is. Tehát általánosságban a gyűjtemény olyan adatszerkezet, amelynek azonos adattípusú elemek rendezett csoportja van, és ezekhez az elemekhez az egyedi követelményeknek megfelelő indexek szolgálnak. A legtöbb programozási nyelv általánosan használt gyűjtemények a tömbök, a készlet, a lista és a sor, stb.
A PL / SQL gyűjtemény sok előnnyel jár a programozó és a felhasználó számára, miközben hasonló adattípusokat tárol és hozzáfér egy alkalmazásban. Ha szükség van az adatok egyszerre történő feldolgozására vagy nagy mennyiségű adat kezelésére, a PL / SQL gyűjtemény nagyon hasznos. Ezenkívül csökkenti a méretet és a feldolgozási sebességet az adatok tárolása és az elemekhez való hozzáférés közben. A gyűjtemények elemei hurkokon és indexeken keresztül könnyen elérhetők. Más programozási nyelvek tömbjeivel ellentétben a PL / SQL csak egydimenziós gyűjteményeket támogat, és a gyűjteményekben szereplő adatokat az előfizetők azonosítják (más nyelvekben indexeknek is hívják). Mindegyik elemhez ez az egyedi alindex hozzáférhető és feldolgozható.
A PL / SQL gyűjtemények típusai
A PL / SQL kollekciók 3 típusúak, amelyeket az alábbiakban adunk meg szintaxissal:
Beágyazott táblák
A beágyazott tábla olyan PL / SQL gyűjtemény, amelyben a méret nincs rögzítve. Tehát olyan, mint egy egydimenziós tömb, kivéve azt a tényt, hogy a méret rögzítve van tömbökben és sűrű, és ritka lehet mindkettő. A programozónak minden alkalommal ki kell terjesztenie a memóriát, mielőtt felhasználná az EXTEND Subscript használatával a Beágyazott táblázatban az '1' egész számmal kezdődik.
A beágyazott táblák Perzisztens PL / SQL gyűjtemények alá tartoznak, ami azt jelenti, hogy tovább felhasználhatók az adatbázisban tárolt adatokként. A programozó törölhet egy tömb elemet, és az asztalot ritkára teheti, ami azt jelenti, hogy a beágyazott táblák lehetnek sűrűek és ritkák is. A beágyazott táblák deklarálhatók akár a PL / SQL blokkban, akár a séma szintjén.
Mivel a beágyazott táblák felső méretére nincs korlátozás, a Nem korlátozott PL / SQL gyűjtemények kategóriájába tartoznak.
Szintaxis:
TYPE typ_name IS table of element_data_type;
Table_name typ_name;
Változó méretű tömbök vagy VARRAY-k
A VARRAY az a PL / SQL gyűjtemény, amelyben a gyűjtemény méretét a definíciójában meghatározottak szerint rögzítik, tehát a VARRAY-okat korlátozó elemeknek hívják. A tömbök elemeit egymás után töltsék le az 1. alindextől kezdve. csak. Tehát a programozó nem törölhet elemet a kettő között, akár a teljes varray törlődik, akár a végétől kivágható. A rátákat egymás után kell elérni és tárolni. Meg lehet határozni a PL / SQL blokkban vagy a séma szintjén. A beágyazott táblázatokhoz hasonlóan a varrays az állandó gyűjtemények kategóriájába tartozik, így újra felhasználhatók és tárolhatók az adatbázisban.
Szintaxis:
TYPE typ_name IS VARRAY OF element_data_type;
Asszociatív tömbök
Ahogy a neve is sugallja, az asszociatív tömbökkel az értékeket kulcs-érték párokban tartják. A használt kulcs lehet string vagy egész típusú. Az asszociatív tömböket index-táblázatoknak is nevezik. Ez a gyűjtemény lehet sűrű vagy ritka. Asszociatív tömbökben a tömb mérete a rögzítéskor nincs rögzítve, és a programozónak nem kell inicializálnia őket, mielőtt felhasználná. Egy asszociatív tömb a nem tartós gyűjtemények kategóriájába tartozik, ami azt jelenti, hogy nem tárolódnak az adatbázisban, és nem használhatók újra, tehát a PL / SQL blokkban vannak definiálva, és csak az adott munkamenetben használják őket. Ezek a tömbök a korlátlan gyűjtemények kategóriájába tartoznak.
Szintaxis:
TYPE typ_name IS TABLE OF element_data_type;
Gyűjtési módszerek
A PL / SQL néhány előre meghatározott módszert kínál a gyűjteményekkel való egyszerű munka érdekében. Néhány módszer az alábbiakban található:
S.No. | Módszer neve | Leírás |
1. | SZÁMOL | Visszaadja a gyűjteményben lévő elemek számát |
2. | ELSŐ | Az egész előfizetők számára a gyűjtemény legkisebb (első) indexszámát adja vissza |
3. | UTOLSÓ | Az egész előfizetők számára a gyűjtemény legnagyobb (utolsó) indexszámát adja vissza. |
4. | EXISTS (n) | Annak ellenőrzésére szolgál, hogy van-e egy adott elem a gyűjteményben vagy sem. Ha az n. Elem jelen van a gyűjteményben, akkor IGAZ-értéket ad vissza, HAMIS, ha nem. |
5. | PRIOR (n) | Visszaadja azt az indexszámot, amely a felhasználó által a gyűjteményben megadott index (n) elődeje. |
6. | NEXT (n) | Visszaadja azt az indexszámot, amely a felhasználó által a gyűjteményben megadott index (n) utódja. |
7. | TRIM | Elemek eltávolítására szolgál a gyűjteményből. A TRIM eltávolítja az utolsó elemet a gyűjteményből, és a TRIM (n) eltávolítja az utolsó n elemet a gyűjtemény végéből. |
8. | TÖRÖL | Ez az elem eltávolítja az adott gyűjteményből. Az összes elem eltávolítása után a gyűjteményszámot 0-ra állítja |
9. | DELETE (m, n) | Asszociatív tömbök és indexelt táblák esetén használják az m és n közötti összes elem eltávolítására. Ha n nagyobb, mint m értéke null. |
10. | HATÁR | A gyűjtemény maximális méretének ellenőrzésére szolgál. |
Gyűjtési kivételek
Az alábbiakban felsorolunk néhány kivételt, amely a gyűjteményekkel való munka során valószínűleg felmerül.
Kivétel neve | Olyan forgatókönyv, amelyben kivétel merül fel |
NEM TALÁLHATÓ ADAT | Kivétel akkor merül fel, ha egy törölt elemre hivatkozó alsó index nem létezik. |
VALUE_ERROR | A kivétel akkor fordul elő, ha a hozzáférést megkísérlő oszlopok értéke nem konvertálható a kulcs típusához, vagy ha az alindex nulla |
COLLECTION_IS_NULL | Kivételt képez az automatikusan nulla gyűjtemény kidolgozása |
SUBSCRIPT_BEYOND_CO UNT | Kivétel akkor merül fel, ha egy felirat meghaladja a gyűjtemény számos elemének maximális számát. |
SUBSCRIPT_OUTSIDE_LIM IT | A kivétel akkor merül fel, amikor a törvényes tartományon kívüli indexszám használatával próbálunk hivatkozni. |
TOO_MANY_ROWS | Kivétel akkor merül fel, ha a SELECT az utasításba egynél több sort ad vissza. |
A gyűjtemények előnyei a PL / SQL-ben
A PL / SQL gyűjtemények néhány előnye az alábbiakban olvasható:
- Ezen felül a gyűjtemények egyik legnagyobb előnye, hogy javítja a rendszer teljesítményét azáltal, hogy gyorsítótárazza a rendszeresen hozzáférhető statikus adatokat.
- A legfontosabb, hogy a gyűjtemények akkor hasznosak, ha dolgozik a nagy adatkészlettel, amelynek azonos adattípusa van, amelyen a felhasználónak több DML műveletet kell végrehajtania.
- Az egyik gyűjtőváltozóval csökkenthetjük a változók többszörös számát, amelyeket a különböző értékek tárolására és ezáltal a memória megtakarítására használunk.
- Különböző műveletek elvégzése, például az adatok tárolása és feldolgozása megkönnyíti a már biztosított PL / SQL gyűjtési módszereket.
Következtetés
A fenti leírás révén képet kaphat arról, hogy mi a PL / SQL gyűjtemény, és a PL / SQL gyűjteményekben használható módszerekről. Mielőtt bármilyen PL / SQL gyűjteménytípust felhasználna a programban, a fejlesztőnek először bármilyen típus kiválasztása előtt alaposan át kell gondolkodnia a forgatókönyvön. Bár a PL / SQL gyűjteményekben való munka nem nehéz, bizonyos esetekben bizonyos kivételek merülhetnek fel, amelyeket a programozónak tisztában kell lennie és tudnia kell, hogyan kell kezelni ezeket.
Ajánlott cikkek
Ez egy útmutató a PL / SQL gyűjteményekhez. Itt a PL / SQL gyűjtemények szintaxisát, típusait, módszereit és kivételeit, valamint az előnyeket tárgyaljuk. A következő cikkeket is megnézheti további információkért -
- Kurzorok PL / SQL formátumban
- CASE utasítás PL / SQL formátumban
- Oracle PL / SQL interjúkérdések
- PL / SQL parancsok