Introduktion til PL / SQL-samlinger

Først og fremmest, som andre moderne programmeringssprog, giver PL / SQL også mulighed for programmerere til at bruge PL / SQL-samlinger. Generelt set er samlingen en datastruktur med en ordnet gruppe af elementer af samme datatype, og disse elementer fås adgang til via indekser i henhold til de specifikke krav. Almindeligt anvendte samlinger i de fleste af programmeringssprogene er Arrays, Sæt, Liste og kø osv.

PL / SQL-samlingen giver en masse fordele for både programmøren og brugeren, mens de lagrer og får adgang til dataene fra lignende datatyper i en applikation. Når der er behov for at behandle dataene på én gang eller håndtere en stor mængde data, er PL / SQL-samlinger meget nyttige. Det reducerer også størrelsen og behandlingshastigheden, mens dataene gemmes og få adgang til elementerne. Elementerne i samlingerne er nemme at få adgang til via løkker og indekser. I modsætning til arrays på andre programmeringssprog understøtter PL / SQL kun endimensionelle samlinger, og dataene i samlingerne identificeres af underskripterne (også kaldet indeks på andre sprog). Hvert element åbnes og behandles gennem denne unikke underskrift.

Typer af PL / SQL-samlinger

PL / SQL-samlingerne er af 3 typer, der er angivet nedenfor med syntaks:

Indlejrede tabeller

En indlejret tabel er en PL / SQL-samling, hvor størrelsen ikke er fast. Så det er som en endimensionel matrix bortset fra det faktum, at størrelsen er fastgjort i matriser, og det kan være tæt og sparsomt begge dele. Programmereren skal udvide hukommelsen hver gang, før den bruges ved hjælp af EXTEND Subscript i tabellen Nested starter med et heltal '1'.

Indlejrede tabeller hører under Persistent PL / SQL-samlinger, hvilket betyder, at de kan genbruges yderligere, som de er gemt i databasen. Programmereren kan også slette et matrixelement og gøre tabellen sparsom, hvilket betyder, at indlejrede tabeller kan være både tætte og sparsomme. De indlejrede tabeller kan deklareres enten inde i PL / SQL-blokken eller på skema-niveau.

Da der ikke er nogen grænse for den øverste størrelse i Nested-tabeller, hører de under kategorien Ubundne PL / SQL-samlinger.

Syntaks:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Variable store arrays eller VARRAYs

VARRAY er PL / SQL-samlingen, hvor størrelsen på samlingen er fast som defineret i dens definition, så VARRAY'er kaldes afgrænsede elementer i arrays udfyldes sekventielt fra underskrift 1. I modsætning til nestede tabeller giver varrays mindre fleksibilitet, da de er tætte kun. Så programmereren kan ikke slette noget element imellem, enten en hel varray slettes, eller det kan trimmes fra slutningen. Varrays skal tilgås og opbevares sekventielt. Det kan defineres enten inde i PL / SQL-blokken eller skemaniveauet. Ligesom indlejrede tabeller hører variationer under kategorien vedvarende samlinger, så de kan genbruges og gemmes i databasen.

Syntaks:

TYPE typ_name IS VARRAY OF element_data_type;

Associative Arrays

Som navnet antyder, bruges associative arrays til at holde værdierne i nøgleværdipar. Den anvendte nøgle kan enten være en streng eller et heltalstype. Associerende arrays kaldes også en indeks-efter tabel. Denne samling kan være tæt eller sparsom. I tilknyttede arrays er arraystørrelsen ikke fast i starten, og programmereren behøver ikke at initialisere dem, før de bruger det. Et associativt array hører under kategorien af ​​ikke-vedvarende samlinger, hvilket betyder, at de ikke er gemt i databasen og ikke kan genbruges, så de er defineret i PL / SQL-blokken og kun bruges i den bestemte session. Disse matriser er under kategorien ubegrænsede samlinger.

Syntaks:

TYPE typ_name IS TABLE OF element_data_type;

Indsamlingsmetoder

PL / SQL leverer nogle foruddefinerede metoder til at gøre det nemt at arbejde med samlinger. Nogle af metoderne er givet nedenfor:

S.No.Metode NavnBeskrivelse
1.TÆLLEDet returnerer antallet af elementer, der er til stede i samlingen
2.FØRSTDet returnerer det mindste (første) indeksnummer i samlingen for heltal-underskrifter
3.SIDSTDet returnerer det største (sidste) indeksnummer i samlingen for heltal-underskrifter.
4.EXISTS (n)Det bruges til at kontrollere, om et bestemt element er til stede i samlingen eller ikke. Det returnerer SAND, hvis de ni elementer er til stede i samlingen, FALSE, hvis ikke.
5.PRIOR (n)Det returnerer det indeksnummer, der er forgængeren til det indeks (n), der er givet af brugeren i samlingen.
6.NEXT (n)Det returnerer det indeksnummer, der er efterfølgeren til det indeks (n), der er givet af brugeren i samlingen.
7.TRIMMEDet bruges til at fjerne elementer fra samlingen. TRIM fjerner det sidste element fra samlingen og TRIM (n) fjerner det sidste n-element fra slutningen af ​​samlingen.
8.SLETDet bruges til at fjerne alle elementerne fra den givne samling. Det sætter samlingstallet til 0, når alle elementer er fjernet
9.SLET (m, n)Det bruges i tilfælde af tilknyttede arrays og indekserede tabeller til at fjerne alle elementer i området fra m til n. Det returnerer nul, hvis m er større end n.
10.BEGRÆNSEDet bruges til at kontrollere samlingens maksimale størrelse.

Undtagelser fra samling

Nedenfor er nogle af de undtagelser, der sandsynligvis opstår, mens du arbejder med samlinger.

UndtagelsesnavnEt scenarie, hvor undtagelse opstår
INGEN DATA FUNDETEn undtagelse opstår, når et abonnement, der henviser til et element, der er slettet og ikke findes mere.
VALUE_ERRORUndtagelsen finder sted, når værdien af ​​kolonner, der prøver at få adgang, ikke kan konverteres til nøgletypen, eller når et abonnement er null
COLLECTION_IS_NULLUndtagelse opstår ved at arbejde på en automatisk nul-samling
SUBSCRIPT_BEYOND_CO UNTEn undtagelse opstår, når et abonnement overskrider det maksimale antal af et antal elementer i samlingen.
SUBSCRIPT_OUTSIDE_LIM ITUndtagelsen opstår, når man prøver at referere ved hjælp af indeksnummeret, der ligger uden for det juridiske interval.
TOO_MANY_ROWSEn undtagelse opstår, når en SELECT in-sætning returnerer mere end 1 række.

Fordele ved samlinger i PL / SQL

Nogle af fordelene ved PL / SQL-samlinger er givet nedenfor:

  • Desuden er en af ​​de største fordele ved samlinger, at det forbedrer systemydelsen ved at cache de statiske data, der skal tilgås regelmæssigt.
  • Vigtigst er, at samlinger er nyttige, når de arbejder med det store datasæt, der har den samme datatype, som brugeren har brug for til at udføre flere DML-operationer.
  • Ved at bruge den ene samlingsvariabel kan vi reducere de flere antal variabler, der bruges til at gemme forskellige værdier og dermed gemme hukommelsen.
  • Det er let at udføre forskellige operationer som lagring og behandling af data gennem allerede leverede PL / SQL-indsamlingsmetoder.

Konklusion

Gennem ovenstående beskrivelse får du muligvis en idé om, hvad PL / SQL-samlingen er, og hvilke metoder, der kan bruges i PL / SQL-samlingerne. Inden en hvilken som helst PL / SQL-samlingstype i programmet skal udvikleren først tænke dybt over scenariet, inden han vælger en hvilken som helst type. Selvom det ikke er vanskeligt at arbejde i PL / SQL-samlinger, men der kan opstå visse undtagelser på forskellige punkter, som programmereren skal være opmærksom på og ved, hvordan man håndterer dem.

Anbefalede artikler

Dette er en guide til PL / SQL-samlinger. Her diskuterer vi syntaks, typer, metoder og undtagelser fra PL / SQL samlinger sammen med fordelene. Du kan også se på de følgende artikler for at lære mere -

  1. Markører i PL / SQL
  2. CASE-erklæring i PL / SQL
  3. Oracle PL / SQL Interview spørgsmål
  4. PL / SQL-kommandoer