IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

ORA-04091: la table est en mutation


Sujet :

SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 25
    Points
    25
    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 : 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'
    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

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 33
    Points : 25
    Points
    25
    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 ?

  3. #3
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    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

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    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 ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/04/2011, 12h12
  2. erreur ora-04091:table mutante
    Par lido dans le forum PL/SQL
    Réponses: 7
    Dernier message: 09/02/2009, 12h26
  3. ora 04091 probleme de table mutante
    Par ukanoldai dans le forum SQL
    Réponses: 5
    Dernier message: 10/09/2007, 08h27
  4. Oracle ora-04091 mutating table
    Par hottnikks_79 dans le forum Oracle
    Réponses: 1
    Dernier message: 19/05/2006, 19h34
  5. Réponses: 4
    Dernier message: 30/10/2005, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo