Comme tous les principaux langages de programmation, PL/SQL prend en charge les boucles qui permettent de répéter un ensemble d'instructions jusqu'à ce qu'une certaine condition soit remplie.
Dans ce didacticiel, nous explorerons l'utilisation de l'instruction LOOP en PL/SQL pour exécuter de manière répétée un bloc de code.
Boucles Oracle
Le langage PL/SQL prend en charge les différentes constructions de boucle telles que la boucle 'for' et les boucles 'while'. Nous pouvons exprimer la syntaxe d'une boucle générique dans Oracle comme indiqué ci-dessous :
<< étiquette >> BOUCLER
instruction_boucle ;
END LOOP loop_label ;
Celui-ci contient le mot-clé LOOP et le corps de la boucle à exécuter et est entouré du mot-clé END LOOP.
Le bloc LOOP exécute les actions définies et renvoie le contrôle à la clause de boucle supérieure après l'achèvement. Ceci est généralement inclus dans une clause EXIT ou EXIT WHEN pour terminer la boucle après qu'une condition spécifique soit remplie. Cela permet d'éviter les boucles infinies.
Oracle For Loop Syntaxe :
Voici la syntaxe d'une boucle 'for' en PL/SQL :
COMMENCERPOUR boucle_variable IN [limite_inférieure..limite_supérieure] BOUCLE
-- code à exécuter dans la boucle
FIN DE BOUCLE ;
FIN;
La loop_variable vous permet de définir une boucle qui est utilisée pour contrôler la boucle et les bornes inférieure et supérieure. Les limites supérieure et inférieure spécifient les valeurs de plage où l'évaluation de la boucle se produit.
Oracle While Boucles
Nous pouvons également définir les boucles « while » en PL/SQL, comme le montre la syntaxe suivante :
COMMENCERTANTQUE condition BOUCLE
-- action en boucle
FIN DE BOUCLE ;
FIN;
Dans une boucle 'while', l'action de boucle est exécutée à plusieurs reprises tant que la condition est vraie.
Curseur Oracle pour les boucles
Oracle prend également en charge les boucles 'cursor for' qui nous permettent d'exécuter un ensemble d'instructions pour chaque ligne d'un ensemble de résultats donné. La syntaxe peut être exprimée comme suit :
COMMENCERFOR boucle_variable IN (SELECT colonne1, colonne2, ...
DE table1, table2, ...
OÙ condition) BOUCLE
-- action en boucle
FIN DE BOUCLE ;
FIN;
Exemples de boucles dans Oracle
Les exemples suivants couvrent les bases de l'utilisation des boucles de curseur for, while et for dans Oracle.
Exemple de boucle For Oracle :
Cet exemple montre comment utiliser une boucle 'for' pour imprimer les nombres de 1 à 10.
COMMENCERPOUR i EN 1..10 BOUCLE
DBMS_OUTPUT.PUT_LINE(i);
FIN DE BOUCLE ;
FIN;
Exemple de boucle While :
Nous pouvons effectuer une action similaire à l'aide d'une boucle while, comme illustré ci-dessous :
COMMENCERDÉCLARER
je NOMBRE := 1;
COMMENCER
TANT QUE i <= 10 BOUCLE
DBMS_OUTPUT.PUT_LINE(i);
je := je + 1;
FIN DE BOUCLE ;
FIN;
FIN;
Cela devrait effectuer une action similaire à la boucle 'for'.
Curseur pour l'exemple de boucle :
L'exemple suivant montre comment utiliser la boucle 'curseur pour' pour obtenir le nom complet d'un client :
COMMENCERPOUR employé IN (SELECT first_name, last_name
DES employés) BOUCLE
DBMS_OUTPUT.PUT_LINE(employee.first_name || ' ' || employee.last_name);
FIN DE BOUCLE ;
FIN;
Exemple de sortie :
Conclusion
Dans cet article, vous avez rencontré trois principaux types de boucles dans le langage Oracle PL/SQL. Vous pouvez consulter la documentation pour explorer davantage.