Sommaire

Le contrôle des flux Boucles

1. La boucle WHILE WHILE

Le WHILE permet de répéter un bout de code tant que la condition testée au début est vraie. Si la condition est fausse, on sort directement de la boucle sans exécuter le code.

Exemple

DECLARE  
-- Déclaration du curseur C_chambres_par_type_lit  
CURSOR C_chambres_par_type_lit (TypLit in varchar2) IS  
SELECT Chambres.idChambre, Hotels.Libelle, Chambres.NumChambre, TypesChambre.NombreLit, TypesChambre.Description  
FROM Chambres INNER JOIN  
Hotels ON Chambres.Hotel = Hotels.idHotel INNER JOIN  
TypesChambre ON Chambres.TypeChambre = TypesChambre.idTypeChambre 
WHERE TypeLit = typlit and Etoile = ’**’; 
 
-- Déclaration des variables réceptrices 
id_chambre number :=0; 
Libelle_hotel varchar2(50); 
Num_Chambre varchar2(6); 
NbLit number(38,0); 
Descript varchar2(255); 
 
-- Déclaration des autres variables 
TypLit_recherche varchar2(20) := ’lit simple’; 
 
BEGIN 
-- Ouverture 
OPEN C_chambres_par_type_lit(typlit_recherche); 
-- Lecture du premier élément 
FETCH C_chambres_par_type_lit  
INTO id_chambre, Libelle_hotel, Num_Chambre, NbLit, descript; 
-- Boucle de lecture tant que l’identifiant de la chambre est < 10 
WHILE id_chambre < 10 
LOOP 
-- Affichage des éléments récupérés 
DBMS_OUTPUT.PUT_LINE(’Id Chambre : ’||id_chambre);  ...