Introduksjon til PL / SQL-samlinger
Først av alt, som andre moderne programmeringsspråk, gir PL / SQL også muligheten til programmerere å bruke PL / SQL-samlinger. Generelt sett er samlingen en datastruktur som har en ordnet gruppe av elementer av samme datatype, og disse elementene får tilgang til via indekser i samsvar med de spesifikke kravene. Vanlige samlinger i de fleste programmeringsspråk er Arrays, Set, List og Queue, etc.
PL / SQL-samlingen gir mange fordeler for både programmerer og bruker mens de lagrer og får tilgang til dataene fra lignende datatyper i en applikasjon. Når det er behov for å behandle dataene på en gang eller håndtere en stor mengde data, er PL / SQL-samlinger veldig nyttige. Det reduserer også størrelsen og behandlingshastigheten mens du lagrer dataene og får tilgang til elementene. Elementene i samlingene kan lett nås via løkker og indekser. I motsetning til matriser på andre programmeringsspråk, støtter PL / SQL bare endimensjonale samlinger og dataene i samlingene blir identifisert av underskriptene (også kalt indeks på andre språk). Hvert element åpnes og behandles gjennom dette unike abonnementet.
Typer PL / SQL-samlinger
PL / SQL-samlingene er av tre typer som er gitt nedenfor med syntaks:
Heklede bord
En nestet tabell er en PL / SQL-samling der størrelsen ikke er fast. Så det er som en endimensjonal matrise bortsett fra at størrelsen er fast i matriser og den kan være tett og sparsom begge deler. Programmereren må utvide minnet hver gang før du bruker det ved å bruke EXTEND Subscript i Nested-tabellen starter med et heltall '1'.
Nested-tabeller kommer under vedvarende PL / SQL-samlinger, noe som betyr at de kan gjenbrukes videre slik de er lagret i databasen. Programmereren kan også slette et matriseelement og gjøre tabellen sparsom, noe som betyr at nestede tabeller kan være både tette og sparsomme. Nested-tabellene kan deklareres enten i PL / SQL-blokken eller på skjemonnivå.
Siden det ikke er noen begrensning for den øvre størrelsen i Nested-tabeller, hører de inn under kategorien Ubundne PL / SQL-samlinger.
syntaks:
TYPE typ_name IS table of element_data_type;
Table_name typ_name;
Variable Sized Arrays eller VARRAYs
VARRAY er PL / SQL-samlingen der størrelsen på samlingen er fast som definert i dens definisjon, så VARRAYs kalles avgrensede elementer i matriser er befolket i rekkefølge fra subscriptet 1. I motsetning til Nested-tabeller gir varrays mindre fleksibilitet da de er tette bare. Så programmereren kan ikke slette noe element mellom seg, enten blir hele variasjonen slettet eller det kan trimmes fra slutten. Varrays må nås og lagres i rekkefølge. Det kan defineres enten inne i PL / SQL-blokken eller skjemonnivået. I likhet med nestede tabeller, kommer varrays under kategorien vedvarende samlinger, slik at de kan gjenbrukes og lagres i databasen.
syntaks:
TYPE typ_name IS VARRAY OF element_data_type;
Associative Arrays
Som navnet antyder, brukes assosiative matriser for å holde verdiene i nøkkelverdipar. Nøkkelen som brukes kan være enten en streng eller heltallstype. Assosiative matriser kalles også en indeks-etter-tabell. Denne samlingen kan være tett eller sparsom. I tilknyttede matriser er ikke matrisen størrelse i starten, og programmereren trenger ikke å initialisere dem før de bruker den. Et assosiativt utvalg kommer inn under kategorien ikke-vedvarende samlinger, noe som betyr at de ikke er lagret i databasen og ikke kan gjenbrukes, så de er definert i PL / SQL-blokken og bare brukes i den aktuelle økten. Disse matriser er under kategorien ubegrensede samlinger.
syntaks:
TYPE typ_name IS TABLE OF element_data_type;
Innsamlingsmetoder
PL / SQL gir noen forhåndsdefinerte metoder for å gjøre det enkelt å jobbe med samlinger. Noen av metodene er gitt nedenfor:
S.No. | Metode Navn | Beskrivelse |
1. | TELLE | Det returnerer antall elementer som er tilstede i samlingen |
2. | FØRST | Det returnerer det minste (første) indeksnummeret i samlingen for heltallsabonnement |
3. | SISTE | Det returnerer det største (siste) indeksnummeret i samlingen for heltallsabonnement. |
4. | Finnes (n) | Det brukes til å sjekke om et bestemt element er til stede i samlingen eller ikke. Det returnerer SANN hvis de ni elementene er til stede i samlingen, FALSE hvis ikke. |
5. | PRIOR (n) | Den returnerer indeksnummeret som er forgjengeren til indeksen (n) gitt av brukeren i samlingen. |
6. | NEXT (n) | Det returnerer indeksnummeret som er etterfølgeren til indeksen (n) gitt av brukeren i samlingen. |
7. | LISTVERK | Det brukes til å fjerne elementer fra samlingen. TRIM fjerner det siste elementet fra samlingen, og TRIM (n) fjerner det siste n-elementet fra slutten av samlingen. |
8. | DELETE | Det brukes til å fjerne alle elementene fra den gitte samlingen. Den setter samlingstallet til 0 etter at alle elementer er fjernet |
9. | DELETE (m, n) | Det brukes i tilfelle assosiative matriser og indekserte tabeller for å fjerne alle elementene i området fra m til n. Den returnerer null hvis m er større enn n. |
10. | GRENSE | Den brukes til å sjekke maksimal størrelse på samlingen. |
Unntak fra samlinger
Nedenfor er noen av unntakene som mest sannsynlig vil oppstå når du arbeider med samlinger.
Unntak Navn | Et scenario der unntak oppstår |
INGEN DATA FUNNET | Et unntak oppstår når et abonnement som refererer til et element som er slettet og ikke eksisterer lenger. |
VALUE_ERROR | Unntaket skjer når verdien av kolonner som prøver å få tilgang til ikke er konvertible til nøkkeltypen eller når et abonnement er null |
COLLECTION_IS_NULL | Unntak oppstår ved å jobbe med en automatisk nullsamling |
SUBSCRIPT_BEYOND_CO UNT | Et unntak oppstår når et abonnement overskrider det maksimale antallet av et antall elementer i samlingen. |
SUBSCRIPT_OUTSIDE_LIM DET | Unntaket oppstår når du prøver å referere ved å bruke indeksnummeret som er utenfor det juridiske området. |
TOO_MANY_ROWS | Et unntak oppstår når en SELECT into statement returnerer mer enn 1 rad. |
Fordeler med samlinger i PL / SQL
Noen av fordelene med PL / SQL-samlingene er gitt nedenfor:
- Dessuten er en av de største fordelene med samlinger at den forbedrer systemytelsen ved å bufret de statiske dataene som må åpnes regelmessig.
- Det viktigste er at samlinger er nyttige når du arbeider med det store datasettet som har samme datatype som brukeren trenger for å utføre flere DML-operasjoner.
- Ved å bruke en samlevariabel kan vi redusere flere antall variabler som brukes til å lagre forskjellige verdier og dermed lagre minnet.
- Å utføre forskjellige operasjoner som å lagre og behandle data blir enkelt gjennom PL / SQL-innsamlingsmetoder som allerede er levert.
Konklusjon
Gjennom beskrivelsen over kan du få et inntrykk av hva PL / SQL-samlingen er og metodene som kan brukes i PL / SQL-samlingene. Før du bruker en hvilken som helst PL / SQL-samlingstype i programmet, må utvikleren tenke grundig over scenariet før han velger en hvilken som helst type. Selv om det ikke er vanskelig å jobbe i PL / SQL-samlinger, men visse unntak kan oppstå på forskjellige punkter som programmereren må være klar over og vet hvordan de skal takle dem.
Anbefalte artikler
Dette er en guide til PL / SQL-samlinger. Her diskuterer vi syntaks, typer, metoder og unntak av PL / SQL-samlinger sammen med fordelene. Du kan også se på følgende artikler for å lære mer -
- Markører i PL / SQL
- CASE-uttalelse i PL / SQL
- Oracle PL / SQL intervjuspørsmål
- PL / SQL-kommandoer