You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.6 KiB
61 lines
1.6 KiB
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;
|
|
|
|
|
|
|