|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : juin 2007 Messages : 328 ![]() |
Bonsoir,
afin de detourner la fameuse j'ai crée une fonction qui me retoune le resultat d'un select sur la table "en mutation", et bien sur avec "pragma autonomous transaction" à l'interieur de cette fonction. je n'ai plus d'erreur , sauf que la fonction ne s'execute pas, mais lorsque je mets en commentaire , la fonction est exceutée mais bien sur l'erreur remonte en face ma question est la suivante : pourquoi , au niveau de la fonction, le code n'est pas executé lorsque y est ?? |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Attends... où j'ai bien pu mettre ma boule de crystal... rhaaaa et le jeu de tarot...
Désolé, j'ai pas... faudra peut-être que tu nous donnes le code... enfin, sans vouloir te déranger hein
|
|
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Inscription : juin 2007 Messages : 328 ![]() |
![]() desolée LOL voila ma fonction : Code :
Code :
Code :
la TABLE UNI.PORTEUR est en mutation ;
|
||||
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Et pourquoi au lieu de : Code :
Code :
SELECT champ,substr(id_personne,0,length(id_personne)-12)||substr(id_personne,-8,8) INTO tag,codelogique FROM porteur, supporte WHERE porteur.id_carte=supporte.id_carte AND Porteur.id_porteur=:new.id_porteur; ![]() C'est quoi l'intérêt de la fonction ? Sinon, je te conseille de lire la doc de MERGE aussi |
||
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : juin 2007 Messages : 328 ![]() |
la fct selectionne de la table porteur , cette table est en mutation , donc je crée la fct contenant la pragma
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 320 ![]() |
Le pragma autonomous transaction ne peut pas résoudre le problème de la « table en mutation ». Le problème de la table en mutation est un bug de développement et non pas d’Oracle.
|
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
mais tu l'as déjà dans le trigger la sélection de porteur... t'as lu ma proposition ?
|
|
|
00
|
|
|
#8 |
|
Membre habitué
![]() Inscription : février 2006 Messages : 139 ![]() |
Bonjour,
Pour ta question originelle: le pragma autonomous cree une nouvelle session s2. Via cette session s2 tu essaies de lire des enregistrements non committés par s1 donc invisible pour s2. Comme tu as un when no_data_found then null, l'erreur ne se voit pas non plus. Concernant le fond du probleme, je ne pense pas que ce soit ce trigger qui pose probleme. Il n'y a pas de modification de la table porteur(ou j'ai mal vu). Le select n'est pas bloquant donc pour moi, il y a un autre accès à la table. Cdt |
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : juin 2007 Messages : 328 ![]() |
oui oui bien sur , mais cela ne résout pas mon problème , vu que la table porteur est en mutation ( trigger lancé lors de la modif de la table porteur , effectue des modifs ce qui declenchent le trigger sur lequel je travaille mnt )
|
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : février 2006 Messages : 139 ![]() |
tu peux donner le sequencement des actions?
|
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
si tu t'évertues à ne pas lire les réponses on ne peut rien pour toi
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com