PL/SQL - Tableaux

Bonjour, futurs programmeurs ! Aujourd'hui, nous allons plonger dans le monde passionnant des tableaux PL/SQL. En tant que votre professeur de science informatique de quartier, je suis là pour vous guider à travers ce voyage pas à pas. Ne vous inquiétez pas si vous êtes nouveau dans la programmation - nous allons commencer par les bases et progresser pas à pas. Alors, sortez vos cahiers virtuels et c'est parti !

PL/SQL - Arrays

Qu'est-ce que les tableaux en PL/SQL ?

Avant de sauter dans le grand bain, comprenons ce qu'est un tableau. Imaginez que vous avez une série de chocolats et au lieu de les éparpiller sur votre bureau, vous décidez de les mettre dans une petite boîte bien rangée. Cette boîte est comme un tableau - c'est un conteneur qui contient plusieurs éléments du même type.

En PL/SQL, un tableau est une collection d'éléments du même type de données. Il vous permet de stocker et de manipuler plusieurs valeurs sous un seul nom de variable. Pretty handy, non ?

Types de tableaux en PL/SQL

PL/SQL propose trois types de tableaux :

  1. Tableaux associatifs (tables indexées)
  2. Tableaux imbriqués
  3. Tableaux de taille variable (VARRAYs)

Concentrons-nous sur les VARRAYs pour l'instant, car ils sont un excellent point de départ pour les débutants.

Création d'un type Varray

Un VARRAY (Tableau de taille variable) est un type de tableau en PL/SQL qui a une limite de taille maximale. C'est comme acheter une boîte de chocolats avec un nombre fixe de compartiments - vous ne pouvez pas ajouter plus de chocolats que ce que la boîte peut contenir !

Voici comment vous créez un type VARRAY :

CREATE OR REPLACE TYPE number_array AS VARRAY(5) OF NUMBER;

Décomposons cela :

  • CREATE OR REPLACE TYPE : Cela indique à Oracle de créer un nouveau type ou de remplacer un type existant.
  • number_array : C'est le nom que nous donnons à notre nouveau type.
  • AS VARRAY(5) : Nous le définissons comme un VARRAY avec un maximum de 5 éléments.
  • OF NUMBER : Chaque élément dans ce tableau sera de type NUMBER.

Maintenant, voyons comment nous pouvons utiliser ce VARRAY dans un bloc PL/SQL :

DECLARE
my_numbers number_array := number_array(10, 20, 30, 40, 50);
BEGIN
FOR i IN 1..my_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Élément ' || i || ' : ' || my_numbers(i));
END LOOP;
END;
/

Sortie :

Élément 1: 10
Élément 2: 20
Élément 3: 30
Élément 4: 40
Élément 5: 50

Décomposons ce code :

  1. Nous déclarons my_numbers comme notre VARRAY et l'initialisons avec 5 nombres.
  2. Nous utilisons une boucle FOR pour itérer à travers le tableau.
  3. my_numbers.COUNT nous donne le nombre d'éléments dans le tableau.
  4. Nous utilisons my_numbers(i) pour accéder à chaque élément et l'imprimer.

Travail avec les VARRAYs

Maintenant que nous avons créé et initialisé un VARRAY, explorons certaines opérations que nous pouvons effectuer sur lui.

Ajout d'éléments

Souvenez-vous, nous ne pouvons pas ajouter plus d'éléments que la taille maximale que nous avons définie. Essayons d'ajouter un élément :

DECLARE
my_numbers number_array := number_array(10, 20, 30);
BEGIN
my_numbers.EXTEND;
my_numbers(4) := 40;

FOR i IN 1..my_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Élément ' || i || ' : ' || my_numbers(i));
END LOOP;
END;
/

Sortie :

Élément 1: 10
Élément 2: 20
Élément 3: 30
Élément 4: 40

Ici, nous avons utilisé EXTEND pour augmenter la taille du tableau de 1, puis affecté une valeur au nouvel élément.

Suppression d'éléments

Nous pouvons également supprimer des éléments de la fin du tableau :

DECLARE
my_numbers number_array := number_array(10, 20, 30, 40, 50);
BEGIN
my_numbers.TRIM(2);  -- Supprimer les deux derniers éléments

FOR i IN 1..my_numbers.COUNT LOOP
DBMS_OUTPUT.PUT_LINE('Élément ' || i || ' : ' || my_numbers(i));
END LOOP;
END;
/

Sortie :

Élément 1: 10
Élément 2: 20
Élément 3: 30

La méthode TRIM supprime des éléments de la fin du tableau.

Méthodes courantes pour les VARRAYs

Voici un tableau des méthodes courantes que vous pouvez utiliser avec les VARRAYs :

Méthode Description
COUNT Retourne le nombre d'éléments dans le tableau
FIRST Retourne l'index du premier élément
LAST Retourne l'index du dernier élément
LIMIT Retourne la taille maximale du tableau
EXTEND Augmente la taille du tableau
TRIM Diminue la taille du tableau
EXISTS Vérifie si un élément existe à un index spécifique

Exemple pratique : Notes des élèves

Mettons nos connaissances à l'œuvre avec un exemple pratique. Imaginez que vous êtes un enseignant (comme moi !) et que vous souhaitez stocker et calculer la moyenne des notes d'un élève :

CREATE OR REPLACE TYPE grade_array AS VARRAY(5) OF NUMBER;

DECLARE
student_grades grade_array := grade_array(85, 90, 78, 92, 88);
total_score NUMBER := 0;
average_score NUMBER;
BEGIN
-- Calculer le score total
FOR i IN 1..student_grades.COUNT LOOP
total_score := total_score + student_grades(i);
END LOOP;

-- Calculer la moyenne
average_score := total_score / student_grades.COUNT;

DBMS_OUTPUT.PUT_LINE('Moyenne des notes : ' || ROUND(average_score, 2));
END;
/

Sortie :

Moyenne des notes : 86.6

Cet exemple montre comment vous pouvez utiliser un VARRAY pour stocker les notes d'un élève, puis calculer et afficher leur moyenne.

Conclusion

Félicitations ! Vous avez appena fait vos premiers pas dans le monde des tableaux PL/SQL. Nous avons couvert les bases des VARRAYs, comment les créer et les manipuler, et même comment les utiliser dans un exemple pratique. Souvenez-vous, les tableaux sont comme les boîtes de chocolats - ils gardent vos données organisées et faciles à accéder. Alors que vous continuez votre parcours en programmation, vous trouverez les tableaux être des outils incroyablement utiles dans votre boîte à outils de codage.

Continuez à pratiquer, restez curieux, et n'ayez pas peur d'expérimenter. Avant de savoir, vous serez en train de surprendre tout le monde avec vos compétences en PL/SQL ! (Désolé, je ne pouvais pas résister à un peu d'humour enseignant là-bas.)

Bonne programmation, futurs magiciens de la base de données !

Credits: Image by storyset