Pascal LAFOURCADE 4 years ago
parent 9c5d59bc51
commit 473c60c2ea

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

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

Loading…
Cancel
Save