sql >> Databasteknik >  >> RDS >> Oracle

Introduktion till PL/SQL-samlingar i Oracle Database

Efter undantagshantering, ämnet som vi avslutade med den senaste PL/SQL-handledningen, är insamling det mest efterfrågade ämnet på mina sociala medier. Det är därför vår nästa serie av tutorials kommer att baseras på PL/SQL-samlingar. Från och med idag.

Vad är PL/SQL-samlingar i Oracle Database?

En homogen endimensionell datastruktur som består av element av samma datatyp kallas insamling i Oracle Database. På ett enkelt språk kan vi säga att en array i Oracle Database kallas Collection.

Definition
En homogen endimensionell datastruktur som består av element av samma datatyp kallas insamling i Oracle Database.

Varför kallar vi insamling en homogen datastruktur?

Eftersom vi vet att arrayen består av data av samma datatyp och det gör även PL/SQL-samlingen, vilket är anledningen till att vi kallar dem homogen datastruktur.

Strukturen för PL/SQL-samlingar består av en cell med subscript som kallas index. Data lagras i dessa celler och kan identifieras och nås med hjälp av indexnumret. Detta är återigen väldigt likt strukturen för arrayer, men till skillnad från array PL/SQL-samlingar är strängt endimensionella.

Informationsbyte:
Samlingen i Oracle Database är strikt endimensionell. Det är inte möjligt att realisera dem på 2D-koordinater. Men när samlingen har ett attribut av objekttyp eller samlingstyp är det möjligt att realisera en flerdimensionell array.

Typer av PL/SQL-samlingar i Oracle Database

PL/SQL-samlingar kan delas in i två kategorier:

  1. Ihållande och
  2. Icke-beständig.

Persistent insamling, som namnet antyder, är de som fysiskt lagrar insamlingsstrukturen med data i databasen och kan nås igen om det behövs. Medan icke-persistent insamling endast lagrar data och struktur för en session.

På basis av ovanstående kategorier delas samlingar ytterligare in i tre typer:

  1. Inkapslade tabeller
  2. Arrayer med variabel storlek eller VARRAY och
  3. Associativa arrayer.

Inkapslade tabell – Kapslade tabeller är beständig insamling vilket innebär att de kan lagras i databasen och kan återanvändas. Kapslade tabeller har inga övre gränser för rader, så de är ogränsade samlingar. Kapslade tabeller är initialt täta men kan bli glesa genom radering.

VARRAY – Liknar kapslade tabeller Variable-Sized Arrays är också beständiga samlingar, så de kan skapas i databas såväl som PL/SQL-block och kan återanvändas. Men till skillnad från kapslade tabeller är VARRAYs avgränsade till sin natur, vilket innebär att de bara kan innehålla ett fast antal element.

Informationsbyte:
Storleken och lagringsschemat för VARRAYs skiljer dem från kapslade tabeller.

Associativ array – Till skillnad från kapslade tabeller och VARRAYs är associativa arrayer icke-beständiga samlingar och kan därför inte lagras i databasen. Eftersom de inte kan lagras kan de därför inte återanvändas men de är tillgängliga i PL/SQL-block för sessionen. Men i likhet med kapslade tabeller är associativa arrayer obegränsade vilket innebär att de inte heller har nedre och övre gränser för rader.

Vanligt använda termer i PL/SQL Collection.

Bounded &Unbounded Collection – En samling som har nedre eller övre gränser för värden på radnummer eller säg en samling som bara kan innehålla ett begränsat antal element kallas avgränsade samlingar. En samling som inte har några nedre eller övre gränser för radnummer kallas obundna samlingar.

Tät och sparsam samling. – Samlingar sägs vara täta om alla rader mellan den första och den sista är definierade och ges ett värde. Och en samling där rader inte definieras och fylls i sekventiellt kallas glesa samling.

Det var allt för den här handledningen. Du kan hjälpa andra att lära dig och hjälpa mig och min kanal att växa genom att dela den här bloggen med dina vänner eller på dina sociala medier.

Du kan nu få uppdateringar av våra bloggar, giveaways tillsammans med andra intressanta saker när det händer direkt i din inkorg, bara prenumerera på vårt nyhetsbrev. Tack och ha en bra dag!


  1. Returnerar strängarray och använd den på AutoCompleteTextview

  2. Anta ett mänskligt förhållningssätt till datastyrning

  3. Hur skriver man en fråga som gör något som liknar MySQL:s GROUP_CONCAT i Oracle?

  4. Sträck ut databas i SQL Server 2016 RTM