parent
21370865a6
commit
2fd5605b1e
@ -0,0 +1,53 @@
|
||||
drop table tresultat purge;
|
||||
create table tresultat(ligne varchar2(200));
|
||||
|
||||
variable vidterrain char(2);
|
||||
prompt id terrain?
|
||||
accept vidterrain
|
||||
|
||||
declare
|
||||
didterrain char(2):='&vidterrain';
|
||||
didReserv char(3);
|
||||
ddateReserv date;
|
||||
dmessage varchar2(200);
|
||||
inexistant exception;
|
||||
probleme exception;
|
||||
dcpt number;
|
||||
dcptReserv number;
|
||||
begin
|
||||
|
||||
dmessage:='terrain inconnu';
|
||||
select count(*) into dcpt
|
||||
from terrain
|
||||
where idterrain=didterrain;
|
||||
if dcpt=0
|
||||
then raise inexistant;
|
||||
else select count(*) into dcptReserv
|
||||
from terrain T, reservation R
|
||||
where T.idterrain=R.idterrain
|
||||
and R.dateReserv >= sysdate;
|
||||
dmessage:='Impossible, il existe des réservations faites par ce terrain pour aujourd''hui ou dans le futur';
|
||||
if dcptReserv>0
|
||||
then raise probleme;
|
||||
else select count(*) into dcptReserv
|
||||
from terrain T, reservation R
|
||||
where T.idterrain=R.idterrain
|
||||
and R.dateReserv < sysdate;
|
||||
if dcptReserv>0
|
||||
then delete from reservation
|
||||
where idterrain=didterrain;
|
||||
insert into tresultat values(to_char(dcptReserv)||' action(s) de réservations faites dans le passé par ce terrain ont été supprimées');
|
||||
end if;
|
||||
delete from terrain where idterrain=didterrain;
|
||||
insert into tresultat values('terrain 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;
|
||||
|
Loading…
Reference in new issue