sql >> Database teknologi >  >> RDS >> Oracle

Sådan opretter du VARRAY'er som PL/SQL-blokmedlem i Oracle-databasen

I dag skal vi lave en praktisk demonstration for at lære, hvordan man opretter en VARRAY i Oracle-databasen, så du er velkommen til at besøge den sidste tutorial for alle de nødvendige teorier om VARRAY'er. Som altid vil jeg forsøge at holde eksemplet så enkelt som muligt. Så hvis du er ny til programmering, så bare rolig, jeg har dig!

Tidligere diskuterede vi i introduktionen til PL/SQL VARRAY'er, der ligesom indlejrede tabel VARRAY'er kan oprettes

  • Som medlem af PL/SQL Block og
  • Som et databaseobjekt.

I dag lærer vi, hvordan man opretter VARRAY'er som medlem af PL/SQL-blokken og overlader resten til de fremtidige øvelser.

Trin 1:Definer en Varray inde i PL/SQL-blok

Du kan kun definere en varray i deklarationssektionen af ​​en PL/SQL-blok.

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

I ovenstående kode oprettede vi en VARRAY og gav den navnet inBlock_vry. Denne varray er i stand til at indeholde 5 elementer af Number datatype.

Trin 2:Initialiser Varray'en

Initialisering af en varray kan nemt udføres ved hjælp af samlingsvariablen. For at initialisere VARRAY vil vi først definere en samlingsvariabel og derefter bruge den til initialisering.

vry_obj inBlock_vry  :=  inBlock_vry();

I ovenstående kode oprettede vi en samlingsvariabel med navnet vry_obj og brugte det til at initialisere varrayen inBlock_vry.

Oplysninger:
Nogle bøger refererer til samlingsvariabel som samlingsobjekt, så bliv ikke forvirret, da begge er ens .

Trin 3:Sådan indsætter du data i VARRAY

Indsættelse af data i varray'en ligner meget at indsætte data i rækken af ​​andre programmeringssprog. Du kan indsætte data enten direkte i hver celle i varray'et ved hjælp af indeksnummeret, eller du kan bruge LOOP til at udfylde varray'en.

Sådan indsætter du data i VARRAY ved hjælp af cellens indeks

Som vi ved, består strukturen af ​​en celle PL/SQL-samling af en celle med et sænket indeks kaldet indeks. Vi kan bruge dette indeks til at indsætte data i varray.

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

Udførelsessektion -1

I ovenstående kode skrev vi udførelsessektionen af ​​PL/SQL-blokken. Den består af 3 eksekverbare sætninger. Disse tre udsagn er –

Linje 6:Udsagn 1

Første erklæring er et EXTEND procedurekald. I denne erklæring allokerer vi hukommelsen til hver celle i VARRAY ved hjælp af EXTEND-proceduren.

Linje 7:Udsagn 2

I den anden sætning tildeler vi en numerisk værdi (værdi afledt af aritmetisk multiplikationsudtryk) til den første celle i varrayen (celle med indeksnummer 1).

Oplysninger:
I PL/SQL-samling starter VARRAY-indeksnummeret på cellen med 1, mens indeksantallet af celler i arrayet starter med 0.

Linje 8:Udsagn 3

Tredje sætning er en output sætning, hvor vi viser den værdi, som vi gemte i 1 celle i VARRY tilbage til brugeren.

Det er sådan, du kan gemme og vise værdien, der er gemt i den enkelte celle i varrayen. Denne proces er kun god, når du har en kort varray. Ellers er det ikke en effektiv måde. En anden måde at indsætte data i Varray er ved at bruge Loop.

Anbefalet læsning:Introduktion til PL/SQL Loop

Sådan indsætter du data i en VARRAY ved hjælp af PL/SQL Loop

Den mest almindelige måde at håndtere data fra en samling på er ved at bruge Loops. De fleste programmører er vant til at bruge Loops til at cykle gennem dataene i enhver form for array, fordi dette er nemt, mindre tidskrævende og har mindre række koder, som holder din kode renere og gør den let at læse. Kort sagt er det nemt og 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;
	/

Udførelsessektion -2

Jeg har forklaret ovenstående kode i detaljer i videovejledningen på min YouTube-kanal, som du kan se her.

Stadig for at minimere forvirringen vil jeg her forklare dig de to hovedfunktioner, der bruges i ovenstående udførelsessektion (Execution Section – 2), som er – Limit &Extend.

For at forstå, hvordan den ovenfor viste kode fungerer, kræver det forståelse af PL/SQL for loop. Jeg har med glæde lavet en detaljeret tutorial om For-Loop, som du kan læse her.

Grænse (linje 6): Limit er en indsamlingsmetode, som returnerer det maksimale antal elementer, der er tilladt i VARRAY. I vores tilfælde er det maksimale antal elementer, der er tilladt i VARRAY, 5 (linje 3), hvilket igen bliver den øvre grænse for For-Loop her.

Udvid (linje 8): Extend er en procedure, som bruges til at allokere hukommelsen og tilføjer et element til VARRAY. Hvis det bruges uden argument (Execution Section-2 Line 8), tilføjer det et enkelt null-element, og hvis det bruges med et argument EXTEND (n) (execution section -1 Line 6), tilføjer det n tal til samlingen. Hvor n er det heltal, du har angivet som argument til proceduren UDVID.

Det er PL/SQL-tutorialen om, hvordan man opretter samling VARRAY i Oracle Database som medlem af PL/SQL-blokken. Sørg for at like denne blog samt dele den med dine venner og abonnere på min kanal, da mange sådanne tutorials er endnu ikke kommet. Tak og god dag!


  1. Hvad skal man gøre med nulværdier, når man modellerer og normaliserer?

  2. Sådan formateres en dato i T-SQL

  3. Hvorfor kommer NULL-værdier først, når du bestiller DESC i en PostgreSQL-forespørgsel?

  4. Returner månedens start i SQLite