Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment créer des VARRAY en tant que membre de bloc PL/SQL dans la base de données Oracle

Aujourd'hui, nous allons faire une démonstration pratique pour apprendre à créer un VARRAY dans Oracle Database, alors n'hésitez pas à visiter le dernier tutoriel pour toutes les théories nécessaires sur les VARRAY. Comme toujours, je vais essayer de garder l'exemple aussi simple que possible. Donc, si vous débutez en programmation, ne vous inquiétez pas, je vous ai compris !

Précédemment, nous avons discuté dans l'introduction aux VARRAY PL/SQL qui, comme les VARRAY de table imbriquées, peuvent être créés

  • En tant que membre de PL/SQL Block et
  • En tant qu'objet de base de données.

Aujourd'hui, nous allons apprendre à créer des VARRAY en tant que membre du bloc PL/SQL et laisser le reste pour les futurs didacticiels.

Étape 1 :Définir un Varray dans un bloc PL/SQL

Vous pouvez définir un varray uniquement dans la section de déclaration d'un bloc PL/SQL.

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

Dans le code ci-dessus, nous avons créé un VARRAY et l'avons nommé inBlock_vry. Ce varray est capable de contenir 5 éléments de type de données Number.

Étape 2 :Initialiser le Varray

L'initialisation d'un varray peut facilement être effectuée à l'aide de la variable de collection. Pour initialiser le VARRAY, nous allons d'abord définir une variable de collection, puis l'utiliser pour l'initialisation.

vry_obj inBlock_vry  :=  inBlock_vry();

Dans le code ci-dessus, nous avons créé une variable de collection avec le nom vry_obj et l'avons utilisée pour initialiser le varray inBlock_vry.

Information :
Certains livres font référence à une variable de collection en tant qu'objet de collection, alors s'il vous plaît ne vous trompez pas car les deux sont identiques .

Étape 3 :Comment insérer des données dans le VARRAY

L'insertion de données dans le varray est très similaire à l'insertion de données dans le tableau d'un autre langage de programmation. Vous pouvez insérer des données directement dans chaque cellule du varray en utilisant le numéro d'index ou vous pouvez utiliser LOOP pour remplir le varray.

Comment insérer des données dans le VARRAY en utilisant l'index de la cellule

Comme nous savons que la structure d'une collection de cellules PL/SQL consiste en une cellule avec un indice appelé index. Nous pouvons utiliser cet index pour insérer les données dans le varray.

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

Section d'exécution -1

Dans le code ci-dessus, nous avons écrit la section d'exécution du bloc PL/SQL. Il se compose de 3 instructions exécutables. Ces trois déclarations sont -

Ligne 6 :Énoncé 1

La première instruction est un appel de procédure EXTEND. Dans cette instruction, nous allouons la mémoire à chaque cellule de VARRAY en utilisant la procédure EXTEND.

Ligne 7 :Énoncé 2

Dans la deuxième instruction, nous attribuons une valeur numérique (valeur dérivée de l'expression de multiplication arithmétique) dans la première cellule du varray (cellule avec le numéro d'index 1).

Information :
Dans la collection PL/SQL, le numéro d'index VARRAY de la cellule commence par 1 alors que le numéro d'index des cellules du tableau commence par 0.

Ligne 8 :Énoncé 3

La troisième instruction est une instruction de sortie dans laquelle nous affichons la valeur que nous avons stockée dans la cellule 1 du VARRY à l'utilisateur.

C'est ainsi que vous pouvez stocker et afficher la valeur stockée dans une cellule individuelle du varray. Ce processus n'est bon que lorsque vous avez un varray court. Sinon, ce n'est pas un moyen efficace. Une autre façon d'insérer des données dans le Varray consiste à utiliser Loop.

Lecture recommandée :Introduction à la boucle PL/SQL

Comment insérer des données dans un VARRAY à l'aide d'une boucle PL/SQL

La manière la plus courante de traiter les données d'une collection consiste à utiliser des boucles. La plupart des programmeurs ont l'habitude d'utiliser des boucles pour parcourir les données de tout type de tableau, car cela est facile, prend moins de temps et comporte moins de lignes de codes, ce qui permet de garder votre code plus propre et de le rendre facile à lire. Bref c'est simple et efficace.

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

Section d'exécution -2

J'ai expliqué le code ci-dessus en détail dans le didacticiel vidéo sur ma chaîne YouTube que vous pouvez regarder ici.

Toujours pour minimiser la confusion, je vais vous expliquer ici les deux principales fonctions utilisées dans la section d'exécution ci-dessus (Execution Section - 2) qui sont - Limit &Extend.

Pour comprendre le fonctionnement du code ci-dessus, il faut comprendre la boucle for PL/SQL. Heureusement, j'ai fait un tutoriel détaillé sur For-Loop, que vous pouvez lire ici.

Limite (ligne 6) : Limit est une méthode de collecte qui renvoie le nombre maximum d'éléments autorisés dans le VARRAY. Dans notre cas, le nombre maximum d'éléments autorisés dans le VARRAY est de 5 (ligne 3), ce qui devient à son tour la limite supérieure de la boucle For ici.

Prolonger (Ligne 8) : Extend est une procédure utilisée pour allouer la mémoire et ajouter un élément au VARRAY. S'il est utilisé sans argument (Exécution Section-2 Ligne 8), il ajoute un seul élément nul et s'il est utilisé avec un argument EXTEND (n) (exécution section -1 Ligne 6), il ajoute alors n nombres à la collection. Où n est l'entier que vous avez fourni comme argument à la procédure EXTEND.

Il s'agit du didacticiel PL/SQL sur la création de la collection VARRAY dans la base de données Oracle en tant que membre du bloc PL/SQL. Assurez-vous d'aimer ce blog, de le partager avec vos amis et de vous abonner à ma chaîne, car de nombreux didacticiels de ce type sont encore à venir. Merci et bonne journée !