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 :
En gros dans chaque select je selectionne un attribut d'une relation différente pour les comparer, cependant le trigger se créer sans erreurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 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 ; /
Je m'arrange pour chaque table à mettre des valeurs incensés afin de le faire déclencher seulement à chaque insertion voilà l'erreur :
voilà qui signifie cette erreur svp ? Car j'ai la même sur un autre triggerORA-01422 L'extraction ramene plus que le nombre de ligne demandé
ORA-06512 o "SYSTEM.POIDSMAX3
ORA erreur lors de l'exectuin du déclencheur ..
Je travail sous oracle
merciiii
Partager