J'ai la même erreur...
Arf mince c'est au niveau du select que ca ne va pas, attend je reflechis...
Remet before et enleve for each row pour voir
Et n'oublie pas de recrée le trigger a chaque fois
Cette fois j'ai un autre message :
CREATE OR REPLACE TRIGGER trig_Tb_Liens
*
ERREUR à la ligne 1 :
ORA-04082: références NEW ou OLD interdites dans déclencheurs niveau table
Au fait il ne faut pas supprimer le trigger???
Non le replace remplace le trigger
En fait remet comme au début avec BEFORE et le FOR EACH ROW et pour le reste si quelqu'un a une idée... A moins qu'en mettant ca, ca marche mieux :
J'ai un doute mais ca se tente.
Code : Sélectionner tout - Visualiser dans une fenêtre à part select count(t.*) into tot from TbLien t where t.codefamille=:new.codefamille and t.codeproduit=:new.codeproduit;
J'ai le message suivant :
CREATE OR REPLACE TRIGGER trig_TbLien
*
ERREUR à la ligne 1 :
ORA-04082: références NEW ou OLD interdites dans déclencheurs niveau table
Avertissement : Déclencheur créé avec erreurs de compilation.
ben si il y est.... C'est ca que je ne comprend pas!!!
Non l'erreur c'était les alias.
D'ailleurs si j'essaie d'insérer une ligne à la main ça marche correctement c'est dès que je balance ma grosse requête d'insertion avec plus de 10 000 lignes à insérer que j'ai des erreurs....
J'ai une question, quand tu inseres une ligne dans la table TbLien, tu remplis toujours tous les champs ou ca depend ?
Normal, c'est la ou tu as des doublons a gerer
Je ne remplis que les champs obligatoires qui sont a NOT NULL, les autres je les laisse vide.
Oki alors tu peux faire un trigger comme ceci :
Et tu ajoutes au début de ton éxécution de 10000 lignes
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 CREATE OR REPLACE TRIGGER trig_TbLien InSTEAD OF INSERT ON TbLien FOR EACH ROW DECLARE TOT INT; BEGIN select count(*) into tot from TbLien where codefamille=:new.codefamille and codeproduit=:new.codeproduit; if (TOT==0) then insert into TbLien (teschamps....) values (:new.teschamps...); else Raise_application_error(-20002,'Cette ligne existe déjà'); end if; END; /
Et a la fin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Alter trigger trig_TbLien ENABLE;
Code : Sélectionner tout - Visualiser dans une fenêtre à part Alter trigger trig_TbLien DISABLE;
Cette fois c'est cette erreur que j'ai :
Je vais finir par déprimer....ON TbLiens
*
ERREUR à la ligne 3 :
ORA-25002: impossible de créer des déclencheurs INSTEAD OF sur des tables
J'ai un message différent maintenant :
Comment je veux faire pour ne plus avoir d'erreur sur la contrainte?ERREUR à la ligne 1 :
ORA-00001: violation de contrainte unique (.PK_TbLiens)
Ca c'est parce que tu as déjà inséré une ligne avec ce numero de clé !
ben non il n'y en as pas en plus j'ai bien fait la selection pour la clée en partant de l'enreg précédent et en ajoutant 1.
En plus j'ai le même message pour les index...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager