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

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;