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 :
alors j'ai regardé sur mon site préféré developper.com heyhey un tuto sur le pb de la
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'
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
Partager