Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2008, 12h08   #1
Futur Membre du Club
 
Inscription : janvier 2008
Messages : 33
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 33
Points : 16
Points : 16
Par défaut ORA-04091: la table est en mutation

BONJOUR A TOUS

voila encore un pb qui me tombe dessus !!!
maintenant que j'ai reussi à enfin creer mes triggers , utiliser le package utl_http une erreur
de la lune me tombe dessus !!

ORA-04091: la table USER.CMD est en mutation

explication de ce que j'ai fait :

j'ai deux tables une CMD et l'autre SESSION

sur la premiere je crée un trigger qui alimente la deuxieme et sur cette deuxieme table
un trigger utilisant le package utl_http qui pointe sur une url ( le fait de pointer cette
url me crée un cache ) .

l'url à laquelle correspond ma page fait une lecture de ma table CMD.
donc voila la sequence :

- insertion de ma ligne de commande ( exemple ligne 40 ).
- declenchement du trigger sur CMD.
- insertion ligne dans ma table SESSION.
- création de mon cache ( qui contient le resultat de la lecture de la table CMD ).
- lecture du cache préalablement crée.

tous mes triggers se declenchent en AFTER donc j'en ai deduit que apres avoir inseré ma ligne
de cmd, mon cache créé, devrai me donner l'ensemble des lignes inséré ( donc jusqu'a la 40 ).

et ben non !!! mon cache contient mes lignes jusqu'a la 39 !
pour resumer le fait de faire toutes ces opérations à la suite il ne me prend pas en compte
ma derniere ligne.

alors j'ai testé quelque chose, faire un select de CMD sur mon deuxieme trigger et là mes supers
erreurs :

Code :
1
2
3
4
5
6
 
ORA-04091: la TABLE USER.CMD est en mutation ;
le déclencheur ou la fonction ne peut la voir ORA-06512: à "USER.SESSION_ENTREE_T1",
ligne 8 ORA-04088: erreur lors d'exécution du déclencheur 'USER.SESSION_ENTREE_T1' 
ORA-06512: à "USER.CMD_T1", 
ligne 3 ORA-04088: erreur lors d'exécution du déclencheur 'USER.CMD_T1'
alors j'ai regardé sur mon site préféré developper.com heyhey un tuto sur le pb de la
table mutante et j'ai pas tout compri

alors le gros pb c'est que finalement le fait de mettre une insertion et un select dans cette
même sequence ne peut pas se faire ou alors il va me donner le select de l'avant insertion !!

comment pourrai je contourner se pb qui apparement est un securité !!

merci de votre aide
highs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 14h11   #2
Futur Membre du Club
 
Inscription : janvier 2008
Messages : 33
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 33
Points : 16
Points : 16
Par défaut personne ne voit ?

j'ai pensé a un truck, est-ce que le faite de faire ces opérations a la suite fait que tous cela est dans une même transaction et donc la validation de l'insert n'est pas encore faite ?
highs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 16h02   #3
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
faut dire que si on doit deviner le code de USER.SESSION_ENTREE_T1 c'est pas gagné en effet

Aussi, ce serait pas mal que tu lises l'article correspondant à cette erreur ainsi que les discussions du forum où on a expliqué le problème
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2008, 16h07   #4
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Citation:
Envoyé par highs Voir le message
j'ai pensé a un truck, est-ce que le faite de faire ces opérations a la suite fait que tous cela est dans une même transaction et donc la validation de l'insert n'est pas encore faite ?
Je me demande bien que est-ce que tu veut dire en fait ...
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h57.


 
 
 
 
Partenaires

Hébergement Web