master
Pascal LAFOURCADE 4 years ago
parent 21370865a6
commit 2fd5605b1e

@ -595,7 +595,7 @@ Messages à prévoir :
\item nb réservations passées ont été supprimées
\end{itemize}
%\lstinputlisting{exo2-PL.sql}
\lstinputlisting{exo2-PL.sql}
\end{exercice}
\begin{exercice}[MF3] (20 points)

@ -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…
Cancel
Save