drop table tresultat purge; create table tresultat(ligne varchar2(200)); variable vnomsport varchar2(10) prompt nom du sport? accept vnomsport declare dnomSport varchar2(10):='&vnomsport'; didReserv char(3); ddateReserv date; dheureDebut number; dnumCreneau char(2); dancienheureDebut char(3); dmessage varchar2(200); inexistant exception; probleme exception; dcpt number; dnb number:=0; cursor CUR is select C.numCreneau, heureDebut, idReserv, dateReserv from creneau C, reservation R, terrain T, sport S where S.nomSport = dnomSport and S.nomSport=T.nomSport and T.idTerrain=R.idTerrain and R.numCreneau=C.numCreneau order by 2,4; begin dmessage:='nom du sport inexistant'; select count(*) into dcpt from sport where nomSport=dnomSport; if dcpt=0 then raise inexistant; else open CUR; fetch cur into dnumCreneau,dheureDebut, didReserv, ddateReserv; while cur%FOUND loop insert into tresultat values('Numero creneau:'||dnumCreneau||' heure de début:'||to_char(dheureDebut)); dancienheureDebut:=dheureDebut; while dancienheureDebut=dheureDebut and cur%FOUND loop insert into tresultat values (didReserv||' date:'||ddateReserv); dnb:=dnb+1; fetch cur into dnumCreneau, dheureDebut, didReserv, ddateReserv; end loop; end loop; close CUR; insert into tresultat values ('Nombre de réservations total pour ce sport : '||to_char(dnb)); end if; exception when inexistant then insert into tresultat values (dmessage); when probleme then insert into tresultat values (dmessage); end; . / select * from tresultat;