Bonjour, voilà je suis assez débutant en SQL.
J'ai créer une BD qui comportent donc plusieurs tables, j'ai voulu créer un trigger :
Code :
CREATE OR REPLACE TRIGGER PoidsMax
BEFORE INSERT ON EstLivre
FOR EACH ROW
DECLARE
b integer ;
d integer ;
e integer ;
TropLourd EXCEPTION ;
BEGIN
SELECT Colis.Poids INTO b FROM Colis WHERE Colis.CodeColis=:NEW.CECodeColis;
SELECT :NEW.Quantite INTO d FROM EstLivre;
SELECT TypeCamion.PoidsMax INTO e FROM TypeCamion,Camion WHERE :NEW.CENoImm=Camion.NoImm AND Camion.CEModele=TypeCamion.Modele
AND Camion.CEMarque=TypeCamion.Marque;
IF e<(b*d) THEN RAISE TropLourd ;
END IF ;
EXCEPTION
WHEN TropLourd then RAISE_APPLICATION_ERROR(-20501,'Charge trop lourde pour le camion');
END ;
/
En gros dans chaque select je sélectionne un attribut d'une relation différente pour les comparer, cependant le trigger se créer sans erreurs.
Je m'arrange pour chaque table à mettre des valeurs insensés afin de le faire déclencher seulement à chaque insertion voilà l'erreur :
ORA-01422 L'extraction ramène plus que le nombre de ligne demandé
ORA-06512 o "SYSTEM.POIDSMAX3
ORA erreur lors de l'execution du déclencheur ..
voilà qui signifie cette erreur svp ? Car j'ai la même sur un autre trigger
Je travail sous oracle
merciiii