sql >> Database >  >> RDS >> Oracle

VARRAY's maken als PL/SQL-bloklid in Oracle Database

Vandaag gaan we een praktische demonstratie geven om te leren hoe je een VARRAY in Oracle Database kunt maken, dus voel je vrij om de laatste tutorial te bezoeken voor alle benodigde theorieën over VARRAY's. Zoals altijd zal ik proberen het voorbeeld zo eenvoudig mogelijk te houden. Dus maak je geen zorgen als je nieuw bent in programmeren, ik heb je!

Eerder hebben we in de inleiding tot PL/SQL VARRAY's besproken dat net als geneste tabel VARRAY's kunnen worden gemaakt

  • Als lid van PL/SQL Block en
  • Als een database-object.

Vandaag zullen we leren hoe we VARRAY's kunnen maken als lid van het PL/SQL-blok en de rest overlaten aan de toekomstige tutorials.

Stap 1:Definieer een Varray in PL/SQL-blok

U kunt een varray alleen definiëren binnen de declaratiesectie van een PL/SQL-blok.

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

In de bovenstaande code hebben we een VARRAY gemaakt en deze inBlock_vry genoemd. Deze varray kan 5 elementen van het datatype Number bevatten.

Stap 2:Initialiseer de Varray

Initialisatie van een varray kan eenvoudig worden gedaan met behulp van de verzamelingsvariabele. Om de VARRAY te initialiseren, zullen we eerst een verzamelingsvariabele definiëren en deze vervolgens gebruiken om te initialiseren.

vry_obj inBlock_vry  :=  inBlock_vry();

In de bovenstaande code hebben we een verzamelingsvariabele gemaakt met de naam vry_obj en die gebruikten we om de varray inBlock_vry te initialiseren.

Informatie:
Sommige boeken verwijzen naar verzamelingsvariabele als verzamelingsobject, dus raak niet in de war, want beide zijn hetzelfde .

Stap 3:Gegevens invoegen in de VARRAY

Het invoegen van gegevens in de varray lijkt erg op het invoegen van gegevens in de reeks van andere programmeertalen. U kunt gegevens rechtstreeks in elke cel van de varray invoegen met behulp van het indexnummer of u kunt LOOP gebruiken om de varray te vullen.

Hoe gegevens in de VARRAY in te voegen met behulp van de index van de cel

Zoals we weten, bestaat de structuur van een cel PL/SQL-verzameling uit een cel met een subscript genaamd index. We kunnen deze index gebruiken om de gegevens in de varray in te voegen.

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

Uitvoeringssectie -1

In de bovenstaande code hebben we de uitvoeringssectie van het PL/SQL-blok geschreven. Het bestaat uit 3 uitvoerbare instructies. Deze drie uitspraken zijn –

Regel 6:Stelling 1

De eerste instructie is een EXTEND-procedureaanroep. In deze verklaring wijzen we het geheugen toe aan elke cel van VARRAY met behulp van de EXTEND-procedure.

Regel 7:Stelling 2

In de tweede instructie kennen we een numerieke waarde (waarde afgeleid van rekenkundige vermenigvuldigingsuitdrukking) toe aan de eerste cel van de varray (cel met indexnummer 1).

Informatie:
In de PL/SQL-verzameling begint het VARRAY-indexnummer van de cel met 1 terwijl het indexnummer van de cellen in de array begint met 0.

Regel 8:Stelling 3

De derde verklaring is een uitvoerverklaring waarin we de waarde die we in de 1 cel van de VARRY hebben opgeslagen, teruggeven aan de gebruiker.

Dat is hoe u de waarde kunt opslaan en weergeven die is opgeslagen in de afzonderlijke cel van de varray. Dit proces is alleen goed als je een korte varray hebt. Anders is het geen efficiënte manier. Een andere manier om gegevens in de Varray in te voegen is door Loop te gebruiken.

Aanbevolen literatuur:Inleiding tot PL/SQL Loop

Gegevens invoegen in een VARRAY met behulp van PL/SQL Loop

De meest gebruikelijke manier om met gegevens van een collectie om te gaan, is door middel van Loops. De meeste programmeurs zijn gewend om Loops te gebruiken om door de gegevens van elk soort array te bladeren, omdat dit gemakkelijk, minder tijdrovend is en minder regelcodes heeft, waardoor uw code schoner en leesbaarder wordt. Kortom, het is gemakkelijk en efficiënt.

	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;
	/

Uitvoering sectie -2

Ik heb de bovenstaande code in detail uitgelegd in de video-tutorial op mijn YouTube-kanaal, die je hier kunt bekijken.

Om de verwarring te minimaliseren, zal ik u hier de twee belangrijkste functies uitleggen die in de bovenstaande uitvoeringssectie (uitvoeringssectie - 2) worden gebruikt, namelijk - Limit &Extend.

Om de werking van de hierboven getoonde code te begrijpen, is het begrip van PL/SQL for loop vereist. Graag heb ik een gedetailleerde tutorial gemaakt over For-Loop, die je hier kunt lezen.

Limiet (regel 6): Limiet is een verzamelmethode die het maximale aantal elementen retourneert dat is toegestaan ​​in de VARRAY. In ons geval is het maximale aantal elementen dat is toegestaan ​​in de VARRAY 5 (regel 3), wat op zijn beurt hier de bovengrens van de For-Loop wordt.

Verlengen (regel 8): Extend is een procedure die wordt gebruikt voor het toewijzen van het geheugen en voegt een element toe aan de VARRAY. Indien gebruikt zonder argument (uitvoering sectie-2 regel 8) voegt het een enkel null element toe en indien gebruikt met een argument EXTEND (n) (uitvoering sectie -1 regel 6) voegt het n getallen toe aan de verzameling. Waarbij n het gehele getal is dat je hebt opgegeven als argument voor de procedure EXTEND.

Dat is de PL/SQL-zelfstudie over het maken van een verzameling VARRAY in Oracle Database als lid van het PL/SQL-blok. Zorg ervoor dat je deze blog leuk vindt en deel hem met je vrienden en abonneer je op mijn kanaal, aangezien er nog veel van dergelijke Tutorials moeten komen. Bedankt en een fijne dag verder!


  1. SQL-query uitvoeren zonder resultaten weer te geven

  2. Alle PHP-fouten uitvoeren naar de database, niet error_log

  3. Bibliotheek niet geladen:libmysqlclient.16.dylib-fout bij het uitvoeren van 'rails server' op OS X 10.6 met mysql2 gem

  4. Hoe een Rest API te bouwen met Spring Boot met behulp van MySQL en JPA