Erreur à l'insertion [ORACLE] - SQL/NoSQL - Programmation
Marsh Posté le 22-03-2004 à 13:51:57
Cela signifi que la table ECICOUNTRIES est en cours de modification, donc quand tu fais le SELECT dans ton INSERT il refuse de le faire car les données retourné ne seront pas forcement a jour.
Marsh Posté le 22-03-2004 à 13:55:06
Merci Thecoin.
Je vais essayer de mettre un commit dans le trigger pour vois si ça va mieux.
Marsh Posté le 22-03-2004 à 13:59:12
Essayes toujours, mais je crois que le COMMIT est implicite dans un tigger.
Marsh Posté le 22-03-2004 à 14:11:30
ludolitaliano a écrit : Ca fait pareil avec des commit dans le trigger. |
Tu as pas le choix, il va faloir trouver une autre solution
Edit: tu voulais faire quoi exactement?
Marsh Posté le 22-03-2004 à 14:15:15
J'ai mon trigger avant insertion qui gère l'identifiant et qui écrit dans une table de log s'il y a des nouveautés ou des valeurs manquantes.
Voilà sinon j'insère à chaque import des valeurs que je reçois par mail.
Marsh Posté le 22-03-2004 à 14:17:13
Tu la vide après chaque utilisation ta table ImportTable?
Marsh Posté le 22-03-2004 à 14:20:00
Oui. En fait je la vide avant chaque nouvelle utilisation.
Marsh Posté le 22-03-2004 à 14:26:35
Commence alors par faire un DELETE dans ta table ImportTable des enregistrement que tu as déjà dans ECICountries, puis ensuite fait l'INSERT dans ECICountries avec toute les données qu'il te reste dans ImportTable.
Marsh Posté le 22-03-2004 à 14:29:10
Bon je l'ai fait pour le test, ça me dit toujours la même chose. Même avec un commit après le delete.
Marsh Posté le 22-03-2004 à 15:03:51
Si j'enlève cette partie de code du trigger ça marche :
Code :
|
Marsh Posté le 22-03-2004 à 11:36:20
Bonjour, j'ai compilé un trigger "BEFORE INSERT" sans erreur de compilation :
Je peux insérer "à la main" une ligne dans la table concernée par ce trigger, sans erreur :
En revanche quand j'éxécute le code suivant :
J'obtiens l'erreur suivante :
ERROR at line 1:
ORA-04091: table A013009.ECICOUNTRIES is mutating, trigger/function may not see it
ORA-06512: at "A013009.T_ECICOUNTRIES", line 16
ORA-04088: error during execution of trigger 'A013009.T_ECICOUNTRIES'
Savez-vous ce que signifie exactement que la tables "is mutating" ?
Merci.