Pascal LAFOURCADE 4 years ago
parent 9c5d59bc51
commit 473c60c2ea

@ -523,7 +523,7 @@ Messages à prévoir :
\item Léquipement a été enregistré : Libellé \item Léquipement a été enregistré : Libellé
\end{itemize} \end{itemize}
% \lstinputlisting{exo1-FGL.sql} \lstinputlisting{exo1-FGL.sql}
\end{exercice} \end{exercice}
\begin{exercice}[PL1] (10 points) \begin{exercice}[PL1] (10 points)

@ -1,58 +1,56 @@
drop table tresultat purge; drop table tresultat purge;
create table tresultat(ligne varchar2(200)); create table tresultat(ligne varchar2(200));
variable vidEquipement char(3) variable vidEquipement char(3)
prompt id de l equipement prompt id de l equipement
accept vidEquipement accept vidEquipement
variable vtarif number variable vtarif number
prompt le tarif de l equipement ? prompt le tarif de l equipement ?
accept vtarif accept vtarif
variable vlibelle VARCHAR2(20) variable vlibelle VARCHAR2(20)
prompt libellé équipement ? prompt libellé équipement ?
accept vlibelle accept vlibelle
DECLARE DECLARE
dmessage varchar2(200); dmessage varchar2(200);
probleme exception; probleme exception;
dcpt number; dcpt number;
BEGIN BEGIN
dmessage := 'ERREUR: id équipement déjà attribué'; dmessage := 'ERREUR: id equipement deja attribue';
SELECT COUNT(*) INTO dcpt SELECT COUNT(*) INTO dcpt
FROM EQUIPEMENT FROM EQUIPEMENT
WHERE idEquipement = '&vidEquipement'; WHERE idEquipement = '&vidEquipement';
IF dcpt=1 THEN IF dcpt=1 THEN
INSERT INTO tresultat VALUES (dmessage); INSERT INTO tresultat VALUES (dmessage);
ELSE ELSE
dmessage := 'ERREUR: Le tarif doit être supérieure à 0'; dmessage := 'ERREUR: Le tarif doit etre superieure a 0';
IF '&vtarif' <= 0 then IF '&vtarif' <= 0 then
raise probleme; raise probleme;
ELSE ELSE
dmessage := 'ERREUR: le libellé de l''équipement doit être unique'; dmessage := 'ERREUR: le libelle de l equipement doit etre unique';
SELECT count(*) INTO dcpt SELECT count(*) INTO dcpt
FROM EQUIPEMENT FROM EQUIPEMENT
WHERE libelle = '&vlibelle'; WHERE libelle = '&vlibelle';
IF dcpt>0 then IF dcpt>0 then
raise probleme; raise probleme;
ELSE ELSE
INSERT INTO EQUIPEMENT VALUES ('&vidEquipement', '&vtarif', '&vlibelle'); INSERT INTO EQUIPEMENT VALUES ('&vidEquipement', '&vtarif', '&vlibelle');
COMMIT; COMMIT;
INSERT INTO tresultat VALUES ('L'équipement a été enregistré :' || '&vlibelle'); INSERT INTO tresultat VALUES ('L equipement a ete enregistre :' || '&vlibelle');
END IF; END IF;
END IF; END IF;
EXCEPTION EXCEPTION
WHEN probleme then WHEN probleme then
INSERT INTO tresultat VALUES (dmessage); INSERT INTO tresultat VALUES (dmessage);
END; END;
. .
/ /
SELECT * FROM tresultat; SELECT * FROM tresultat;

Loading…
Cancel
Save