Introduktion till PL / SQL-samlingar

Först och främst, liksom andra moderna programmeringsspråk, ger PL / SQL också möjligheten för programmerare att använda PL / SQL-samlingar. Allmänt sett är samlingen en datastruktur med en ordnad grupp av element av samma datatyp och dessa element nås via index enligt de specifika kraven. Vanliga samlingar på de flesta programmeringsspråk är Arrays, Set, List och Queue, etc.

PL / SQL-samlingen ger många fördelar för både programmeraren och användaren medan de lagrar och får åtkomst till data från liknande datatyper i en applikation. När det finns ett behov att bearbeta data samtidigt eller hantera en stor mängd data, är PL / SQL-samlingar mycket användbara. Det minskar också storleken och bearbetningshastigheten medan data lagras och tillgång till elementen. Elementen i samlingarna kan lätt nås via slingor och index. Till skillnad från matriser på andra programmeringsspråk stöder PL / SQL endast endimensionella samlingar och data i samlingarna identifieras av underskrivningarna (även kallad index på andra språk). Varje element öppnas och bearbetas genom detta unika abonnemang.

Typer av PL / SQL-samlingar

PL / SQL-samlingarna är av tre typer som ges nedan med syntax:

Kapslade bord

En kapslad tabell är en PL / SQL-samling där storleken inte är fixerad. Så det är som en endimensionell matris med undantag för att storleken är fixerad i matriser och den kan vara tät och gles båda. Programmeraren måste utöka minnet varje gång innan det används med EXTEND Subscript i tabellen Nested börjar med ett heltal '1'.

Kapslade tabeller omfattas av Persistent PL / SQL-samlingar vilket innebär att de kan återanvändas ytterligare som lagras i databasen. Programmeraren kan också ta bort ett arrayelement och göra tabellen gles, vilket innebär att kapslade tabeller kan vara både täta och glesa. De kapslade tabellerna kan deklareras antingen i PL / SQL-blocket eller på schemanivå.

Eftersom det inte finns någon gräns för den övre storleken i kapslade tabeller, kommer de tillhör kategorin Obundet PL / SQL-samlingar.

Syntax:

TYPE typ_name IS table of element_data_type;
Table_name typ_name;

Variabla storlekarrayer eller VARRAYs

VARRAY är PL / SQL-samlingen där storleken på kollektionen är fixerad enligt definitionen så att VARRAYs kallas avgränsade element i arrayer fylls i följd med början från subscriptet. Till skillnad från Nested-tabeller, ger varrays mindre flexibilitet eftersom de är täta endast. Så programmeraren kan inte ta bort något element däremellan, antingen en hel varray raderas eller det kan trimmas från slutet. Varrays måste komma åt och lagras i följd. Det kan definieras antingen inuti PL / SQL-blocket eller schemanivån. I likhet med kapslade tabeller, omfattas olika typer av kategorier av varaktiga samlingar så att de kan återanvändas och lagras i databasen.

Syntax:

TYPE typ_name IS VARRAY OF element_data_type;

Associative Arrays

Som namnet antyder, används associerande matriser för att hålla värdena i nyckelvärdespar. Nyckeln som används kan vara antingen en sträng- eller heltalstyp. Associerande matriser kallas också en index-av-tabell. Denna samling kan vara antingen tät eller gles. I associerande matriser är matrisstorleken inte fixerad i start och programmeraren behöver inte initiera dem innan den används. Ett associerande array hör till kategorin icke-persistenta samlingar, vilket innebär att de inte lagras i databasen och inte kan återanvändas så att de definieras i PL / SQL-blocket och endast används i den specifika sessionen. Dessa matriser är under kategorin obundna samlingar.

Syntax:

TYPE typ_name IS TABLE OF element_data_type;

Insamlingsmetoder

PL / SQL tillhandahåller några fördefinierade metoder för att göra det enkelt att arbeta med samlingar. Några av metoderna ges nedan:

S.No.MetodnamnBeskrivning
1.RÄKNADet returnerar antalet element som finns i samlingen
2.FÖRSTDet returnerar det minsta (första) indexnumret i samlingen för heltalsabonnemang
3.SISTADet returnerar det största (sista) indexnumret i samlingen för heltalsabonnemang.
4.EXISTS (n)Det används för att kontrollera om ett visst element finns i samlingen eller inte. Det returnerar SANT om de nionde elementen finns i samlingen, FALSE om inte.
5.PRIOR (n)Det returnerar indexnumret som är föregångaren till indexet (n) som användaren har angett i samlingen.
6.NEXT (n)Det returnerar indexnumret som är efterföljaren till indexet (n) som ges av användaren i samlingen.
7.TRIMMADet används för att ta bort element från samlingen. TRIM tar bort det sista elementet från samlingen och TRIM (n) tar bort det sista n-elementet från slutet av samlingen.
8.RADERADet används för att ta bort alla element från den givna samlingen. Det sätter samlingsantalet till 0 efter att alla element har tagits bort
9.DELETE (m, n)Det används för associerande matriser och indexerade tabeller för att ta bort alla element i området från m till n. Det returnerar noll om m är större än n.
10.BEGRÄNSADet används för att kontrollera kollektionens maximala storlek.

Samling undantag

Nedan följer några av de undantag som troligen uppstår när du arbetar med samlingar.

Undantag NamnEtt scenario där undantag uppstår
INGEN INFORMATION HITTADEtt undantag uppstår när ett abonnemang som hänvisar till ett element som raderas och inte finns längre.
VALUE_ERRORUndantaget inträffar när värdet på kolumner som försöker få åtkomst inte kan konverteras till nyckeltypen eller när ett abonnemang är noll
COLLECTION_IS_NULLUndantag uppstår vid arbetet med en automatisk nollsamling
SUBSCRIPT_BEYOND_CO UNTEtt undantag uppstår när ett abonnemang överskrider det maximala antalet av ett antal element i samlingen.
SUBSCRIPT_OUTSIDE_LIM ITUndantaget uppstår när man försöker referera med indexnumret som ligger utanför det rättsliga området.
TOO_MANY_ROWSEtt undantag uppstår när ett VÄLJ till uttalande returnerar mer än 1 rad.

Fördelar med samlingar i PL / SQL

Några av fördelarna med PL / SQL-samlingarna ges nedan:

  • Dessutom är en av de största fördelarna med samlingarna att det förbättrar systemprestanda genom att cache-lagra de statiska data som måste komma åt regelbundet.
  • Det viktigaste är att samlingar är till hjälp när du arbetar med det stora datasättet med samma datatyp som användaren behöver för att utföra flera DML-operationer.
  • Genom att använda en samlingsvariabel kan vi minska flera antal variabler som används för att lagra olika värden och därmed spara minnet.
  • Att utföra olika operationer som lagring och bearbetning av data blir enkelt genom PL / SQL-insamlingsmetoder som redan tillhandahålls.

Slutsats

Genom beskrivningen ovan kan du få en uppfattning om vad PL / SQL-samlingen är och vilka metoder som kan användas i PL / SQL-samlingarna. Innan någon PL / SQL-insamlingstyp används i programmet måste utvecklaren först tänka på scenariot innan han väljer någon typ. Att arbeta i PL / SQL-samlingar är inte svårt men vissa undantag kan uppstå vid olika punkter som programmeraren måste vara medveten om och vet hur hanterar dem.

Rekommenderade artiklar

Detta är en guide till PL / SQL-samlingar. Här diskuterar vi syntax, typer, metoder och undantag för PL / SQL-samlingar tillsammans med fördelarna. Du kan också titta på följande artiklar för att lära dig mer -

  1. Markörer i PL / SQL
  2. CASE-uttalande i PL / SQL
  3. Oracle PL / SQL-intervjufrågor
  4. PL / SQL-kommandon