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;