drop table tresultat purge; create table tresultat(ligne varchar2(200)); variable vidEquipement char(3) prompt id de l'équipement accept vidEquipement variable vtarif number prompt le tarif de l'équipement ? 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;