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.
69 lines
1.7 KiB
69 lines
1.7 KiB
drop table tresultat purge;
|
|
create table tresultat(ligne varchar2(200));
|
|
|
|
variable vidReserv char(3)
|
|
prompt id Reservation?
|
|
accept vidReserv
|
|
variable vdateReserv char(9)
|
|
prompt date reservation?
|
|
accept vdateReserv
|
|
variable vnbJoueurs number
|
|
prompt nombre joueurs?
|
|
accept vnbJoueurs
|
|
variable vidTerrain char(5)
|
|
prompt id Terrain?
|
|
accept vidTerrain
|
|
variable vnumCreneau char(2)
|
|
prompt num Creneau?
|
|
accept vnumCreneau
|
|
|
|
declare
|
|
didReserv char(3):='&vidReserv';
|
|
ddateReserv date:=to_date('&vdateReserv', 'dd-mon-yy');
|
|
dnbJoueurs number:=&vnbJoueurs;
|
|
didTerrain char(5):='&vidTerrain';
|
|
dnumCreneau char(2):='&vnumCreneau';
|
|
|
|
dmessage varchar2(200);
|
|
probleme exception;
|
|
dcpt number;
|
|
|
|
begin
|
|
|
|
dmessage:='ERREUR: id réservation déjà attribué';
|
|
select count(*) into dcpt
|
|
from reservation
|
|
where idReserv=didReserv;
|
|
if dcpt=1
|
|
then insert into tresultat values (dmessage);
|
|
else dmessage:='La date de réservation doit être postérieure à la date du jour';
|
|
if ddateReserv < sysdate
|
|
then raise probleme;
|
|
else dmessage:='l''identifiant du terrain est inconnu';
|
|
select count(*) into dcpt
|
|
from terrain
|
|
where idTerrain=didTerrain;
|
|
id dcpt=0 then raise probleme;
|
|
else
|
|
dmessage:='l''identifiant du créneau est inconnu';
|
|
select count(*) into dcpt
|
|
from creneau
|
|
where numCreneau=dnumCreneau;
|
|
id dcpt=0 then raise probleme;
|
|
else
|
|
insert into reservation values(didReserv, ddateReserv, dnbJoueurs, didTerrain, dnumCreneau);
|
|
commit;
|
|
insert into tresultat values ('La réservation a été enregistrée :');
|
|
end if;
|
|
end if;
|
|
end if;
|
|
exception
|
|
when probleme then insert into tresultat values (dmessage);
|
|
end;
|
|
.
|
|
/
|
|
select * from tresultat;
|
|
|
|
|
|
|