Dans Oracle PL/SQL, l'instruction WHILE LOOP exécute le code écrit entre WHILE LOOP et END LOOP jusqu'à ce que la condition soit vraie. Ci-dessous, je donne quelques exemples d'instruction Oracle WHILE LOOP.
Syntaxe
WHILE logical_condition LOOP -- some PL/SQL code END LOOP;
Exemples de boucle WHILE Oracle
1. Bouclez 10 fois et imprimez le tableau
Dans l'exemple suivant, WHILE LOOP exécutera les instructions jusqu'à ce que la valeur de la variable n_num soit inférieure ou égale à 10. il imprimera le tableau de 2 en incrémentant la valeur de la variable n_num de 1 à chaque itération de la boucle.
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; n_table number := 2; BEGIN n_num := 1; WHILE n_num <= 10 LOOP DBMS_OUTPUT.put_line ('2 x ' || n_num || ' = '||(n_table * n_num)); n_num := n_num + 1; END LOOP; END; /
Sortie :
2 x 1 = 2 2 x 2 = 4 2 x 3 = 6 2 x 4 = 8 2 x 5 = 10 2 x 6 = 12 2 x 7 = 14 2 x 8 = 16 2 x 9 = 18 2 x 10 = 20 PL/SQL procedure successfully completed.
N'oubliez pas d'incrémenter la valeur de la variable n_num, afin qu'elle puisse atteindre jusqu'à 10, sinon ce sera une boucle infinie.
2. Pour boucler jusqu'à ce que la valeur de la variable booléenne soit VRAIE
Dans l'exemple suivant, il bouclera jusqu'à ce que la valeur de la variable booléenne b_run soit TRUE et imprimera la valeur de la variable n_num en l'incrémentant de 1 à chaque itération et lorsque la valeur de la variable n_num est supérieure à 5, il définira la variable b_run sur FALSE , afin que WHILE LOOP puisse terminer son travail.
SET SERVEROUTPUT ON; DECLARE n_num NUMBER; b_run BOOLEAN := TRUE; BEGIN n_num := 1; WHILE b_run LOOP DBMS_OUTPUT.put_line (n_num || ' Times'); n_num := n_num + 1; IF n_num > 5 THEN b_run := FALSE; END IF; END LOOP; END; /
Sortie :
1 Times 2 Times 3 Times 4 Times 5 Times PL/SQL procedure successfully completed.
Pour cela également, n'oubliez pas de définir la valeur de la variable b_run sur FALSE, sinon ce sera une boucle infinie. Vous pouvez également écrire la sortie ; au lieu de b_run :=FALSE ; instruction pour sortir de la boucle .
Voir aussi :
- Exemple Oracle FOR LOOP REVERSE
- Programme PL/SQL pour imprimer les détails des employés