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 neveLeírás
1.SZÁMOLVisszaadja 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.TRIMElemek 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ÖLEz 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ÁRA 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 neveOlyan forgatókönyv, amelyben kivétel merül fel
NEM TALÁLHATÓ ADATKivétel akkor merül fel, ha egy törölt elemre hivatkozó alsó index nem létezik.
VALUE_ERRORA 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_NULLKivételt képez az automatikusan nulla gyűjtemény kidolgozása
SUBSCRIPT_BEYOND_CO UNTKivé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 ITA 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_ROWSKivé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 -

  1. Kurzorok PL / SQL formátumban
  2. CASE utasítás PL / SQL formátumban
  3. Oracle PL / SQL interjúkérdések
  4. PL / SQL parancsok