Sommaire

Les curseurs

Un curseur est un élément qui permet de stocker le résultat d’une requête contenant plusieurs lignes.

Il faut le déclarer dans la section déclarative. Curseurs:déclarer

Il faut l’ouvrir par OPEN, l’exécuter par FETCH et le fermer par CLOSE. Curseurs:ouvrir Curseurs:exécuter Curseurs:fermer FETCH OPEN

Dans l’exemple, le type de lit recherché est passé en paramètre au curseur : CURSOR C_chambres_par_type_lit (TypLit IN VARCHAR2) IS.

TypLit est renseigné lors de l’OPEN CURSOR avec la variable qui contient le libellé du type de lit : OPEN C_chambres_par_type_litC(TypLit_recherche).

Exemple avec la même requête que précédemment :

DECLARE 
-- Déclaration du curseur C_chambres_par_type_lit 
CURSOR C_chambres_par_type_lit (TypLit in varchar2) IS 
SELECT 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 
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  ...