Les tables imbriquées en PL/SQL sont un type de collection qui vous permet de stocker un nombre illimité d'éléments du même type. Ils sont particulièrement utiles pour conserver des ensembles de données dans un format structuré, ce qui les rend idéaux pour les scénarios dans lesquels vous devez gérer plusieurs lignes de données associées.
Définition simple
Table imbriquée : une table imbriquée est un type de collection qui peut contenir un nombre arbitraire d'éléments (du même type de données). Contrairement aux VARRAY, les tables imbriquées peuvent être clairsemées, ce qui signifie qu'elles peuvent présenter des lacunes dans leur indexation.
Syntaxe et structure
Syntaxe
CRÉER OU REPLACER TYPE type_name AS TABLE OF element_type ;
type_name : Nom du type de table imbriquée.
element_type : le type de données des éléments de la table imbriquée (par exemple, VARCHAR2, NUMBER ou un type d'objet).
nom_variable type_name;
EXTEND(n) : augmente la taille de la table imbriquée de n éléments.
TRIM(n) : Réduit la taille du tableau imbriqué de n éléments.
DELETE(i) : supprime l'élément à l'index i.
COUNT : renvoie le nombre d'éléments dans le tableau imbriqué.
Exemple : Tableau imbriqué des jours de la semaine
Voici un exemple complet qui montre comment créer un tableau imbriqué pour les jours de la semaine, le remplir et afficher le contenu.
Étape 1 : Créer un type de table imbriquée
Tout d'abord, nous définissons un type de table imbriquée pour contenir les noms des jours.
CRÉER OU REMPLACER LE TYPE DaysOfWeek COMME TABLE DE VARCHAR2(15);
Étape 2 : déclarer et remplir la table imbriquée
Ensuite, nous déclarons une variable de ce type et la remplissons avec les jours de la semaine.
DÉCLARER
jours JoursDeSemaine ; -- Déclarer une variable de table imbriquée
COMMENCER
-- Initialiser la table imbriquée
jours := DaysOfWeek();
-- Add elements to the nested table days.EXTEND(7); -- Extend the size by 7 for all days of the week days(1) := 'Monday'; days(2) := 'Tuesday'; days(3) := 'Wednesday'; days(4) := 'Thursday'; days(5) := 'Friday'; days(6) := 'Saturday'; days(7) := 'Sunday'; -- Display the elements in the nested table FOR i IN 1 .. days.COUNT LOOP DBMS_OUTPUT.PUT_LINE('Day ' || i || ': ' || days(i)); END LOOP;
FIN ;
/
Explication détaillée
L'instruction CREATE OR REPLACE TYPE DaysOfWeek AS TABLE OF VARCHAR2(15); définit un nouveau type de table imbriquée appelé DaysOfWeek qui peut contenir des chaînes jusqu'à 15 caractères. Ce type servira à stocker les noms des jours.
Dans le bloc DECLARE, les jours sont déclarés comme une variable de type DaysOfWeek. Cette variable contiendra notre collection de jours.
jours := DaysOfWeek(); initialise la variable jours comme une table imbriquée vide de type DaysOfWeek.
jours.EXTEND(7); augmente la taille du tableau imbriqué des jours pour contenir 7 éléments (un pour chaque jour de la semaine).
Chaque jour est affecté à l'indice correspondant :
jours(1) := 'lundi';
jours(2) := 'mardi';
jours(3) := 'mercredi';
jours(4) := 'Jeudi';
jours(5) := 'vendredi';
jours(6) := 'samedi';
jours(7) := 'Dimanche';
Une boucle FOR parcourt la table imbriquée des jours en utilisant jours.COUNT pour déterminer le nombre d'éléments présents.
DBMS_OUTPUT.PUT_LINE sort chaque jour avec son index.
Sortie
Lorsque ce bloc est exécuté, le résultat sera :
Jour 1 : lundi
Jour 2 : mardi
Jour 3 : mercredi
Jour 4 : jeudi
Jour 5 : vendredi
Jour 6 : samedi
Jour 7 : dimanche
Conclusion
Cet exemple montre comment définir, remplir et manipuler une table imbriquée en PL/SQL. Les tables imbriquées sont des structures polyvalentes qui vous permettent de gérer efficacement des collections de données et peuvent être utilisées dans diverses applications où une gestion dynamique des données est requise.
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!