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

Collection PL/SQL :table imbriquée dans la base de données Oracle

Comment créer une table imbriquée dans un bloc PL/SQL

Bienvenue dans le deuxième tutoriel de la série PL/SQL Collection. Dans ce didacticiel, nous allons apprendre le premier type de collection qui est "Table imbriquée". Une table à l'intérieur d'une table est la définition la plus simple que l'on puisse trouver et elle est correcte à tous points de vue car une table qui est intégrée dans une autre table est exactement ce que le nom de table imbriquée suggère.

Mais, si nous devons définir la collection "Table imbriquée" d'une manière plus fantaisiste et technique, nous pouvons dire que les tables imbriquées sont des structures unidimensionnelles qui sont persistantes et illimitées par nature. Ils sont accessibles en SQL comme en PL/SQL et peuvent être utilisés dans des tables, des enregistrements et des définitions d'objets. Puisqu'il s'agit d'une collection PL/SQL illimitée, elle peut contenir n'importe quel nombre d'éléments dans un ensemble ordonné aléatoire.

Définition
Les tableaux imbriqués sont des structures unidimensionnelles persistantes et illimitées par nature. Ils sont accessibles en SQL comme en PL/SQL et peuvent être utilisés dans des tables, des enregistrements et des définitions d'objets. Puisqu'il s'agit d'une collection PL/SQL illimitée, elle peut contenir n'importe quel nombre d'éléments dans un ensemble non ordonné.

Lecture suggérée :Introduction à la collection PL/SQL

Une table imbriquée peut être créée à l'intérieur du bloc PL/SQL ou dans la base de données en tant qu'objet de type collection (Schema Object). Dans le cas de l'ancien, le tableau imbriqué se comporte comme un tableau unidimensionnel sans type d'index ni limite supérieure.

Donc, pour le moment, concentrons-nous sur la création d'une table imbriquée dans un bloc PL/SQL et laissons le reste pour le prochain didacticiel.

Syntaxe pour la création d'un tableau imbriqué

DECLRE 
TYPE nested_table_name IS TABLE OF element_type [NOT NULL];

J'ai expliqué cette syntaxe en détail dans mon tutoriel vidéo sur ma chaîne YouTube. Je vous recommande fortement de vous référer à cette vidéo.

Exemple :comment créer une table imbriquée dans un bloc PL/SQL ?

L'exemple suivant est uniquement pour montrer comment créer une table imbriquée, il n'y a rien d'extraordinaire à ce sujet.

SET SERVEROUTPUT ON;
DECLARE
   TYPE my_nested_table   IS TABLE OF number;
    var_nt  my_nested_table :=  my_nested_table (9,18,27,36,45,54,63,72,81,90);
BEGIN
   DBMS_OUTPUT.PUT_LINE ('Value Stored at index 1 in NT is ' ||var_nt (1)); 
   DBMS_OUTPUT.PUT_LINE ('Value Stored at index 2 in NT is ' ||var_nt (2));
   DBMS_OUTPUT.PUT_LINE ('Value Stored at index 3 in NT is ' ||var_nt (3));
END;
 /

L'exemple ci-dessus est très simple dans lequel nous avons créé une table imbriquée et l'avons nommée "my_nested_table" (ligne numéro 3). Dans la ligne suivante (ligne numéro 4), nous avons créé une instance de la même collection et l'avons utilisée pour initialiser la table imbriquée et y stocker des données. Dans la section d'exécution, nous accédons aux données stockées individuellement en utilisant le numéro d'index, de la même manière que nous le faisions dans les tableaux.

Au lieu d'accéder manuellement aux données une par une à l'aide de l'index, nous pouvons utiliser des boucles et parcourir chaque élément de la table imbriquée de la collection.

 SET SERVEROUTPUT ON;
 DECLARE
   TYPE my_nested_table   IS TABLE OF number;
   var_nt  my_nested_table :=  my_nested_table (9,18,27,36,45,54,63,72,81,90);
 BEGIN
   FOR i IN 1..var_nt.COUNT
   LOOP
     DBMS_OUTPUT.PUT_LINE ('Value stored at index '||i||'is '||var_nt(i));
   END LOOP;
 END;
 /

C'est un autre exemple de la façon de créer une table imbriquée dans laquelle nous parcourons les données et les affichons à l'utilisateur à l'aide de la boucle For.

C'est tout sur la façon de créer des tables imbriquées dans des blocs PL/SQL. Restez à l'écoute car dans le prochain didacticiel, nous apprendrons comment créer des tables imbriquées en tant qu'objets de collection de base de données et quelles sont toutes les vues de dictionnaire de données que vous pouvez utiliser pour obtenir les informations des tables imbriquées stockées dans votre base de données.

C'est tout. Merci d'avoir lu et bonne journée !