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