sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar VARRAYs som PL/SQL-blockmedlem i Oracle Database

Idag ska vi göra en praktisk demonstration för att lära oss hur man skapar en VARRAY i Oracle Database, så besök gärna den sista handledningen för alla nödvändiga teorier om VARRAYs. Som alltid kommer jag att försöka hålla exemplet så enkelt som möjligt. Så om du är ny på programmering, oroa dig inte, jag har dig!

Tidigare diskuterade vi i introduktionen till PL/SQL VARRAYs som som kapslade tabell VARRAYs kan skapas

  • Som medlem i PL/SQL Block och
  • Som ett databasobjekt.

Idag kommer vi att lära oss hur man skapar VARRAYs som medlem av PL/SQL-blocket och lämnar resten för framtida handledningar.

Steg 1:Definiera ett Varray i PL/SQL-block

Du kan bara definiera en varray i deklarationssektionen i ett PL/SQL-block.

 	SET SERVEROUTPUT ON;
	DECLARE
	    TYPE inBlock_vry IS VARRAY (5) OF NUMBER;

I ovanstående kod skapade vi en VARRAY och gav den namnet inBlock_vry. Denna varray kan hålla 5 element av Number datatype.

Steg 2:Initiera Varray

Initialisering av en varray kan enkelt göras med hjälp av insamlingsvariabeln. För att initiera VARRAY kommer vi först att definiera en samlingsvariabel och sedan använda den för initiering.

vry_obj inBlock_vry  :=  inBlock_vry();

I ovanstående kod skapade vi en samlingsvariabel med namnet vry_obj och använde det för att initiera varrayen inBlock_vry.

Information:
Vissa böcker hänvisar till samlingsvariabel som samlingsobjekt, så bli inte förvirrad eftersom båda är samma .

Steg 3:Så här infogar du data i VARRAY

Att infoga data i varrayen är mycket likt att infoga data i arrayen av andra programmeringsspråk. Du kan infoga data antingen direkt i varje cell i varrayen med hjälp av indexnumret eller så kan du använda LOOP för att fylla i varrayen.

Hur man infogar data i VARRAY med hjälp av cellens index

Som vi vet består strukturen av en cell PL/SQL-samling av en cell med ett sänkt namn som kallas index. Vi kan använda detta index för att infoga data i varrayen.

	BEGIN
		vry_obj.EXTEND(5); 
		vry_obj(1):= 10*2;
		DBMS_OUTPUT.PUT_LINE(vry_obj(1));    
	END;
	/

Exekveringsavsnitt -1

I ovanstående kod skrev vi exekveringsdelen av PL/SQL-blocket. Den består av 3 körbara uttalanden. Dessa tre påståenden är –

Rad 6:Påstående 1

Det första uttalandet är ett EXTEND-proceduranrop. I detta uttalande allokerar vi minnet till varje cell i VARRAY med hjälp av EXTEND-proceduren.

Rad 7:Påstående 2

I den andra satsen tilldelar vi ett numeriskt värde (värde som härrör från aritmetiskt multiplikationsuttryck) till den första cellen i varrayen (cell med indexnummer 1).

Information:
I PL/SQL-samlingen börjar VARRAY-indexnumret för cellen med 1 medan indextalet för celler i arrayen börjar med 0.

Rad 8:Påstående 3

Tredje satsen är en utgångssats där vi visar värdet som vi lagrade i cellen 1 i VARRY tillbaka till användaren.

Det är så du kan lagra och visa värdet som är lagrat i individuell cell i varrayen. Denna process är bara bra när du har en kort varray. Annars är det inte ett effektivt sätt. Ett annat sätt att infoga data i Varray är att använda Loop.

Rekommenderad läsning:Introduktion till PL/SQL Loop

Hur man infogar data i en VARRAY med PL/SQL Loop

Det vanligaste sättet att hantera data från en samling är att använda loopar. De flesta programmerare är vana vid att använda Loops för att bläddra igenom data från vilken typ av array som helst eftersom detta är enkelt, mindre tidskrävande och har färre rader med koder som håller din kod renare och gör den lätt att läsa. Kort sagt är det enkelt och effektivt.

	BEGIN
	FOR i IN 1 .. vry_obj.LIMIT
	LOOP
 		vry_obj.EXTEND;
		vry_obj (i):= 10*i;    
		DBMS_OUTPUT.PUT_LINE (vry_obj (i));    
	END LOOP;
	END;
	/

Utförande avsnitt -2

Jag har förklarat ovanstående kod i detalj i videohandledningen på min YouTube-kanal som du kan titta på här.

Fortfarande för att minimera förvirringen kommer jag att förklara för dig här de två huvudfunktionerna som används i exekveringssektionen ovan (Execution Section – 2) som är – Limit &Extend.

För att förstå hur ovanstående kod fungerar krävs förståelse för PL/SQL för loop. Glädjande nog har jag gjort en detaljerad handledning om For-Loop, som du kan läsa här.

Begränsning (rad 6): Limit är en insamlingsmetod som returnerar det maximala antalet element som är tillåtna i VARRAY. I vårt fall är det maximala antalet element som är tillåtna i VARRAY 5 (rad 3) vilket i sin tur blir den övre gränsen för For-Loop här.

Förlänga (rad 8): Extend är en procedur som används för att allokera minnet och lägga till ett element till VARRAY. Om den används utan argument (Execution Section-2 Rad 8) lägger den till ett enda nollelement och om den används med ett argument EXTEND (n) (exekveringssektion -1 Rad 6) lägger den till n nummer till samlingen. Där n är det heltal du angav som ett argument till proceduren EXTEND.

Det är PL/SQL-handledningen om hur man skapar samling VARRAY i Oracle Database som medlem i PL/SQL-blocket. Se till att gilla den här bloggen samt dela den med dina vänner och prenumerera på min kanal eftersom många sådana tutorials ännu inte kommer. Tack och ha en bra dag!


  1. MySQL:Ogiltig användning av gruppfunktionen

  2. Kopiera/duplicera databas utan att använda mysqldump

  3. Oracle:spelar kolumnordningen någon roll i ett index?

  4. Skapa en CTE i Oracle