En PL/SQL, un VARRAY (Variable-size array) est un type de collection qui peut stocker un nombre fixe d'éléments. Chaque élément du VARRAY est stocké de manière séquentielle et tous les éléments sont du même type de données.
Caractéristiques du VARRAY :
Taille maximale fixe : lorsque vous définissez un VARRAY, vous spécifiez le nombre maximum d'éléments qu'il peut contenir. Vous ne pouvez pas dépasser cette limite.
Séquentiel : les éléments d'un VARRAY sont stockés et accessibles dans un ordre spécifique, à partir de l'index 1.
Homogène : tous les éléments d'un VARRAY doivent être du même type de données.
Densement indexé : Un VARRAY est toujours densément peuplé. Cela signifie qu'il n'y a aucun écart entre les index.
Stockés dans la base de données Oracle : lorsqu'ils sont utilisés dans les colonnes de la base de données, les VARRAY sont stockés en ligne avec les données des lignes du tableau.
Syntaxe pour VARRAY en PL/SQL
Vous définissez d'abord un type VARRAY, en précisant le nombre d'éléments qu'il peut contenir et le type de données des éléments.
TYPE varray_name EST VARRAY(max_size) OF element_type;
varray_name : Nom du type VARRAY.
max_size : nombre maximum d'éléments pouvant être stockés dans le VARRAY.
element_type : Type de données des éléments stockés dans le VARRAY.
Une fois le type VARRAY déclaré, vous pouvez déclarer des variables de ce type et les initialiser avec des valeurs.
DÉCLARER
TYPE employe_varray EST VARRAY(5) DE VARCHAR2(30); -- Déclaration de type VARRAY d'une taille maximale de 5
employe_names employe_varray := employe_varray('John', 'Jane'); -- Initialisation avec 2 éléments
COMMENCER
-- Déclarations pour utiliser le VARRAY
FIN ;
Opérations sur les VARRAY :
Voici quelques opérations courantes que vous pouvez effectuer sur les VARRAY :
EXTEND(n) : ajoute n éléments à la fin du VARRAY.
COUNT : renvoie le nombre actuel d'éléments dans le VARRAY.
TRIM(n) : supprime n éléments de la fin du VARRAY.
FIRST et LAST : renvoie le premier et le dernier index du VARRAY.
Exemple : Déclarer et utiliser un VARRAY
DÉCLARER
-- Déclarez un type VARRAY pouvant contenir jusqu'à 5 éléments de VARCHAR2(50)
TYPE employe_varray EST VARRAY(5) DE VARCHAR2(50);
-- Declare a variable of this VARRAY type and initialize it with two values employee_names employee_varray := employee_varray('John', 'Jane');
COMMENCER
-- Ajouter plus d'éléments au VARRAY
noms_employés.EXTEND(3); -- Étendre le tableau de 3 éléments supplémentaires
employ_names(3) := 'Sam';
employ_names(4) := 'Pierre';
employ_names(5) := 'Lucy';
-- Print all the names in the VARRAY FOR i IN 1..employee_names.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Employee ' || i || ': ' || employee_names(i)); END LOOP; -- Trim 1 element from the end of the VARRAY employee_names.TRIM(1); DBMS_OUTPUT.PUT_LINE('After trimming 1 element:'); -- Print remaining names in the VARRAY FOR i IN 1..employee_names.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Employee ' || i || ': ' || employee_names(i)); END LOOP;
FIN ;
/
Explication :
Déclaration de type VARRAY : Nous déclarons un type VARRAY Employee_varray pouvant contenir jusqu'à 5 éléments de type VARCHAR2(50).
Initialisation : Nous initialisons la variable Employee_names avec deux noms : 'John' et 'Jane'.
EXTEND : Nous utilisons la méthode EXTEND(3) pour étendre le VARRAY afin de contenir 3 éléments supplémentaires, laissant ainsi de la place à un total de 5 éléments.
Accès aux éléments : nous attribuons des valeurs aux nouvelles positions (3 à 5) et imprimons tous les éléments à l'aide d'une boucle.
TRIM : La méthode TRIM(1) est utilisée pour supprimer le dernier élément du VARRAY, réduisant ainsi le nombre d'éléments de 5 à 4.
Sortie :
Employé 1 : John
Employée 2 : Jane
Employé 3 : Sam
Employé 4 : Pierre
Employée 5 : Lucy
Après avoir coupé 1 élément :
Employé 1 : John
Employée 2 : Jane
Employé 3 : Sam
Employé 4 : Pierre
Points clés :
Les VARRAY sont utiles lorsque vous connaissez à l'avance la taille maximale de votre collection.
Accès séquentiel : les éléments des VARRAY sont accessibles à l'aide de leur index.
Extension et découpage : vous pouvez ajouter ou supprimer dynamiquement des éléments du VARRAY à l'aide de EXTEND et TRIM.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!