parent
669e8d0620
commit
2881606ce3
@ -0,0 +1,55 @@
|
||||
drop table tresultat purge;
|
||||
create table tresultat(ligne varchar2(200));
|
||||
|
||||
variable vnomsport varchar2(10)
|
||||
prompt nom du sport?
|
||||
accept vnomsport
|
||||
variable vnbMinJoueurs number
|
||||
prompt nombre minimum?
|
||||
accept vnbMinJoueurs
|
||||
variable vnbMaxJoueurs number
|
||||
prompt nombre maximum?
|
||||
accept vnbMaxJoueurs
|
||||
variable vduree number
|
||||
prompt duree?
|
||||
accept vduree
|
||||
|
||||
declare
|
||||
dnomSport varchar2(10):='&vnomsport';
|
||||
dnbMinJoueurs number:='&vnbMinJoueurs';
|
||||
dnbMaxJoueurs number:='&vnbMaxJoueurs';
|
||||
dduree number:='&vduree';
|
||||
dmessage varchar2(200);
|
||||
probleme exception;
|
||||
dcpt number;
|
||||
|
||||
begin
|
||||
|
||||
dmessage:='ERREUR: nom du sport déjà attribué';
|
||||
select count(*) into dcpt
|
||||
from sport
|
||||
where nomSport=dnomSport;
|
||||
if dcpt=1
|
||||
then insert into tresultat values (dmessage);
|
||||
else dmessage:='Le nombre maximum de joueurs doit être supérieur au nombre minimum';
|
||||
if dnbMaxJoueurs < dnbMinJoueurs
|
||||
then raise probleme;
|
||||
else dmessage:='La durée est de 1h ou 2h';
|
||||
if dduree =1 or dduree =2
|
||||
then
|
||||
insert into sport values(dnomSport, dnbMinJoueurs, dnbMaxJoueurs, dduree);
|
||||
commit;
|
||||
insert into tresultat values ('Le sport a été enregistré :'|| dnomSport);
|
||||
else raise probleme;
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
exception
|
||||
when probleme then insert into tresultat values (dmessage);
|
||||
end;
|
||||
.
|
||||
/
|
||||
select * from tresultat;
|
||||
|
||||
|
||||
|
@ -0,0 +1,68 @@
|
||||
drop table tresultat purge;
|
||||
create table tresultat(ligne varchar2(200));
|
||||
|
||||
variable vidReserv char(3)
|
||||
prompt id Reservation?
|
||||
accept vidReserv
|
||||
variable vdateReserv char(9)
|
||||
prompt date reservation?
|
||||
accept vdateReserv
|
||||
variable vnbJoueurs number
|
||||
prompt nombre joueurs?
|
||||
accept vnbJoueurs
|
||||
variable vidTerrain char(5)
|
||||
prompt id Terrain?
|
||||
accept vidTerrain
|
||||
variable vnumCreneau char(2)
|
||||
prompt num Creneau?
|
||||
accept vnumCreneau
|
||||
|
||||
declare
|
||||
didReserv char(3):='&vidReserv';
|
||||
ddateReserv date:=to_date('&vdateReserv', 'dd-mon-yy');
|
||||
dnbJoueurs number:=&vnbJoueurs;
|
||||
didTerrain char(5):='&vidTerrain';
|
||||
dnumCreneau char(2):='&vnumCreneau';
|
||||
|
||||
dmessage varchar2(200);
|
||||
probleme exception;
|
||||
dcpt number;
|
||||
|
||||
begin
|
||||
|
||||
dmessage:='ERREUR: id réservation déjà attribué';
|
||||
select count(*) into dcpt
|
||||
from reservation
|
||||
where idReserv=didReserv;
|
||||
if dcpt=1
|
||||
then insert into tresultat values (dmessage);
|
||||
else dmessage:='La date de réservation doit être postérieure à la date du jour';
|
||||
if ddateReserv < sysdate
|
||||
then raise probleme;
|
||||
else dmessage:='l''identifiant du terrain est inconnu';
|
||||
select count(*) into dcpt
|
||||
from terrain
|
||||
where idTerrain=didTerrain;
|
||||
id dcpt=0 then raise probleme;
|
||||
else
|
||||
dmessage:='l''identifiant du créneau est inconnu';
|
||||
select count(*) into dcpt
|
||||
from creneau
|
||||
where numCreneau=dnumCreneau;
|
||||
id dcpt=0 then raise probleme;
|
||||
else
|
||||
insert into reservation values(didReserv, ddateReserv, dnbJoueurs, didTerrain, dnumCreneau);
|
||||
commit;
|
||||
insert into tresultat values ('La réservation a été enregistrée :');
|
||||
end if;
|
||||
end if;
|
||||
end if;
|
||||
exception
|
||||
when probleme then insert into tresultat values (dmessage);
|
||||
end;
|
||||
.
|
||||
/
|
||||
select * from tresultat;
|
||||
|
||||
|
||||
|
@ -0,0 +1,57 @@
|
||||
drop table tresultat purge;
|
||||
create table tresultat(ligne varchar2(200));
|
||||
|
||||
variable vidJoueur char(2);
|
||||
prompt id joueur?
|
||||
accept vidJoueur
|
||||
|
||||
declare
|
||||
didJoueur char(2):='&vidJoueur';
|
||||
didReserv char(3);
|
||||
ddateReserv date;
|
||||
dmessage varchar2(200);
|
||||
inexistant exception;
|
||||
probleme exception;
|
||||
dcpt number;
|
||||
dcptReserv number;
|
||||
begin
|
||||
|
||||
dmessage:='joueur inconnu';
|
||||
select count(*) into dcpt
|
||||
from joueur
|
||||
where idJoueur=didJoueur;
|
||||
if dcpt=0
|
||||
then raise inexistant;
|
||||
else select count(*) into dcptReserv
|
||||
from faire F, reservation R
|
||||
where F.idReserv=R.idReserv
|
||||
and F.idJoueur=didJoueur
|
||||
and R.dateReserv >= sysdate;
|
||||
dmessage:='Impossible, il existe des réservations faites par ce joueur pour aujourd''hui ou dans le futur';
|
||||
if dcptReserv>0
|
||||
then raise probleme;
|
||||
else select count(*) into dcptReserv
|
||||
from faire F, reservation R
|
||||
where F.idReserv=R.idReserv
|
||||
and F.idJoueur=didJoueur
|
||||
and R.dateReserv < sysdate;
|
||||
if dcptReserv>0
|
||||
then delete from faire
|
||||
where idJoueur=didJoueur;
|
||||
insert into tresultat values(to_char(dcptReserv)||' action(s) de réservations faites dans le passé par ce joueur ont été supprimées');
|
||||
end if;
|
||||
delete from joueur where idJoueur=didJoueur;
|
||||
insert into tresultat values('joueur supprimé');
|
||||
commit;
|
||||
end if;
|
||||
end if;
|
||||
exception
|
||||
when inexistant then insert into tresultat values (dmessage);
|
||||
when probleme then insert into tresultat values (dmessage);
|
||||
end;
|
||||
.
|
||||
/
|
||||
select * from tresultat;
|
||||
|
||||
|
||||
|
@ -0,0 +1,39 @@
|
||||
|
||||
declare
|
||||
didEquip char(2):='&vidEquip';
|
||||
didReserv char(3);
|
||||
dmessage varchar2(200);
|
||||
inexistant exception;
|
||||
dcpt number;
|
||||
dcptReserv number;
|
||||
cursor R is select idReservation from reservation R, contenir C where R.idReservation=C.idReservation
|
||||
and dateReserv>='01-mar-21' and dateReserv<='31-mar-21' and C.idEquipement=didEquip;
|
||||
begin
|
||||
|
||||
dmessage:='l''identifiant de l''equipement est inconnu';
|
||||
select count(*) into dcpt
|
||||
from equipement
|
||||
where idEquipement=didEquip;
|
||||
if dcpt=0
|
||||
then raise inexistant;
|
||||
|
||||
else dcptReserv:=0;
|
||||
open R;
|
||||
fetch R into didReservation;
|
||||
while R%found
|
||||
loop
|
||||
delete from contenir
|
||||
where idReservation=didReservation;
|
||||
delete from faire
|
||||
where idReservation = didReservation;
|
||||
delete from reservation where idReservation= didReservation;
|
||||
dcptReserv:=dcptReserv+1;
|
||||
fetch R into didReservation;
|
||||
end loop;
|
||||
close R;
|
||||
insert into tresultat values(to_char(dcptReserv)||' réservations ont été supprimées');
|
||||
commit;
|
||||
end if;
|
||||
exception
|
||||
when inexistant then insert into tresultat values (dmessage);
|
||||
end;
|
@ -0,0 +1,60 @@
|
||||
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;
|
||||
|
||||
|
||||
|
Loading…
Reference in new issue