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.
50 lines
1.3 KiB
50 lines
1.3 KiB
|
|
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;
|
|
|
|
|
|
|
|
|