Sissejuhatus PL / SQL kogudesse

Esiteks, nagu ka muud tänapäevased programmeerimiskeeled, pakub ka PL / SQL programmeerijatele võimalust kasutada PL / SQL-i kogusid. Niisiis, üldiselt on kogumiks andmestruktuur, millel on sama andmetüübiga järjestatud elementide rühm ja neile elementidele pääsetakse vastavalt konkreetsetele nõuetele indeksite kaudu. Enamikus programmeerimiskeeltes tavaliselt kasutatavad kogud on Arrays, Set, List ja Queue jne.

PL / SQL-kogum pakub nii programmeerijale kui ka kasutajale palju eeliseid, samal ajal rakenduses sarnaste andmetüüpide andmeid hoides ja neile juurde pääsedes. Kui on vaja andmeid töödelda korraga või käidelda suurt hulka andmeid, on PL / SQL kogud väga kasulikud. See vähendab ka andmete salvestamise ja elementidele juurdepääsu suurust ja töötlemiskiirust. Kollektsioonide elementidele pääseb hõlpsalt juurde silmuste ja indeksite kaudu. Erinevalt teiste programmeerimiskeelte massiividest toetab PL / SQL ainult ühemõõtmelisi kogumeid ja kogudes olevad andmed identifitseeritakse alaindeksite abil (teistes keeltes nimetatakse neid ka indeksiks). Igale elemendile pääseb juurde ja seda töödeldakse selle ainulaadse alaindeksi kaudu.

PL / SQL kogude tüübid

PL / SQL kollektsioone on 3 tüüpi, mis on toodud allpool koos süntaksiga:

Pesastatud lauad

Pesastatud tabel on PL / SQL-i kogu, mille suurus pole fikseeritud. Niisiis, see on nagu ühemõõtmeline massiiv, välja arvatud see, et suurus on fikseeritud massiivides ja see võib olla tihe ja hõre nii. Programmeerija peab mälu iga kord laiendama, enne kui kasutada seda EXTEND Subscripti abil tabelis Pesastatud, algusega täisarvuga 1.

Pesastatud tabelid kuuluvad püsivate PL / SQL-i kogude alla, mis tähendab, et neid saab andmebaasis talletatud kujul edasi kasutada. Programmeerija saab ka massiivielemendi kustutada ja muuta tabeli hõredaks, mis tähendab, et pesastatud lauad võivad olla nii tihedad kui hõredad. Pesastatud tabeleid saab deklareerida kas PL / SQL-plokis või skeemi tasemel.

Kuna pesastatud tabelite ülemisel suurusel pole piiranguid, kuuluvad need kategooriasse Piiramata PL / SQL kogud.

Süntaks:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Muutuva suurusega massiivid või variaadid

VARRAY on PL / SQL-i kogu, milles kogumi suurus fikseeritakse vastavalt selle määratlusele, nii et VARRAY-sid nimetatakse piiritletud elementideks. Massiivide elemendid asustatakse järjestikku alates alamindeksist. Erinevalt pesastatud tabelitest pakuvad variandid vähem paindlikkust, kuna need on tihedad ainult. Nii et programmeerija ei saa ühtegi elementi vahelt kustutada, kustutatakse kas kogu varray või saab selle lõpust kärpida. Varrastele tuleb juurde pääseda ja neid tuleb järjestikku säilitada. Seda saab määratleda kas PL / SQL-plokis või skeemi tasemel. Sarnaselt pesastatud tabelitega kuuluvad ka kiud püsikollektsioonide kategooriasse, nii et neid saab uuesti kasutada ja andmebaasis säilitada.

Süntaks:

TYPE typ_name IS VARRAY OF element_data_type;

Assotsiatiivsed massiivid

Nagu nimigi ütleb, kasutatakse väärtuste hoidmiseks võtme-väärtuse paarides assotsiatiivseid massiive. Kasutatav võti võib olla kas stringi või täisarvu tüüp. Assotsiatiivseid massiive nimetatakse ka indeksitabeliks. See kollektsioon võib olla tihe või hõre. Assotsiatiivsetes massiivides pole massiivi suurus käivitamisel fikseeritud ja programmeerija ei pea neid enne selle kasutamist lähtestama. Assotsiatiivne massiiv kuulub mittepüsivate kogumite kategooriasse, mis tähendab, et neid ei säilitata andmebaasis ja neid ei saa uuesti kasutada, nii et need on määratletud PL / SQL-plokis ja neid kasutatakse ainult selles konkreetses seansis. Need massiivid kuuluvad piiramata kogumite kategooriasse.

Süntaks:

TYPE typ_name IS TABLE OF element_data_type;

Kogumismeetodid

PL / SQL pakub mõnda eelmääratletud meetodit, mis hõlbustab kogudega töötamist. Mõned meetodid on esitatud allpool:

S.N.Meetodi nimiKirjeldus
1COUNTSee tagastab kollektsioonis olevate elementide arvu
2ESIMENESee tagastab väikseima (esimese) indeksinumbri koguarvestuses täisarvude alaindeksite jaoks
3VIIMANESee tagastab täisarvude alajaotiste kogu suurima (viimase) indeksi numbri.
4OLEMASOLUD (n)Selle abil kontrollitakse, kas konkreetne element on kollektsioonis olemas või mitte. Tagastab TRUE, kui kolmandik elementi on kollektsioonis, FALSE, kui mitte.
5EELNÕU (n)See tagastab indeksi numbri, mis on indeksi (n) eelkäija, mille kasutaja on andnud kollektsioonis.
6JÄRGMINE (n)Tagastab indeksi numbri, mis on indeksi (n) järglane, mille kasutaja on andnud kollektsioonis.
7TRIMSeda kasutatakse elementide eemaldamiseks kollektsioonist. TRIM eemaldab kollektsioonist viimase elemendi ja TRIM (n) eemaldab viimase n elemendi kollektsiooni lõpust.
8KustutaSeda kasutatakse kõigi elementide eemaldamiseks antud kollektsioonist. See seab kogu elementide eemaldamise järel koguarvuks 0
9Kustuta (m, n)Seda kasutatakse assotsiatiivsete massiivide ja indekseeritud tabelite korral kõigi elementide eemaldamiseks vahemikus m kuni n. Kui m on suurem kui n, tagastatakse väärtus nulliks.
10.LimiitSeda kasutatakse kollektsiooni maksimaalse suuruse kontrollimiseks.

Kogumise erandid

Allpool on toodud mõned erandid, mis tekivad tõenäoliselt kogudega töötamisel.

Erandi nimiStsenaarium, milles tekib erand
ANDMEID EI LEITUDErandiks on siis, kui alaindeks viitab elemendile, mis on kustutatud ja mida pole enam olemas.
VALUE_ERRORErand tehakse siis, kui veergude väärtus, mis üritavad juurde pääseda, ei ole võtmetüübi jaoks teisendatav või kui alamindeks on null
COLLECTION_IS_NULLErandiks on automaatselt nullkogumiga töötamine
SUBSCRIPT_BEYOND_CO UNTErandiks on olukord, kui alamindeks ületab kogus olevate elementide arvu.
SUBSCRIPT_OUTSIDE_LIM ITErand tekib juhul, kui proovitakse viidata indeksnumbri kasutamisele, mis on väljaspool seaduslikku vahemikku.
TOO_MANY_ROWSErandiks on siis, kui avalduses olev VALIK tagastab rohkem kui ühe rea.

Kollektsioonide eelised PL / SQL-is

Allpool on toodud mõned PL / SQL kogude eelised:

  • Lisaks on kollektsioonide üks suurimaid eeliseid see, et see parandab süsteemi jõudlust, salvestades vahemällu staatilised andmed, millele tuleb regulaarselt juurde pääseda.
  • Kõige tähtsam on see, et kogudest on abi suure andmekogumiga töötamisel, millel on sama andmetüüp, millel kasutaja peab mitu DML-toimingut tegema.
  • Ühe kogumiku muutuja abil saame vähendada muutujate arvu, mida kasutatakse erinevate väärtuste salvestamiseks ja seega mälu säästmiseks.
  • Erinevate toimingute, näiteks andmete salvestamise ja töötlemise teostamine muutub juba pakutavate PL / SQL-i kogumismeetodite abil lihtsaks.

Järeldus

Ülaltoodud kirjelduse kaudu saate aimu, mis on PL / SQL kollektsioon ja meetodid, mida saab kasutada PL / SQL kollektsioonides. Enne mis tahes PL / SQL kogumistüübi kasutamist programmis peab arendaja enne suvalise tüübi valimist kõigepealt stsenaariumi põhjalikult läbi mõtlema. PL / SQL-i kogudes töötamine pole küll keeruline, kuid erinevates punktides võib esineda teatud erandeid, mida programmeerija peab teadma ja oskama nendega toime tulla.

Soovitatavad artiklid

See on PL / SQL kogude juhend. Siin käsitleme PL / SQL kogude süntaksi, tüüpe, meetodeid ja erandeid koos eelistega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. Kursorid PL / SQL-is
  2. CASE avaldus PL / SQL-is
  3. Oracle PL / SQL-i intervjuu küsimused
  4. PL / SQL käsud