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