|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Inscription : juin 2004 Messages : 487 ![]() |
Bonjour,
Je cherche à synchroniser des tables avec cette procédure. La phase de test est peu concluante. En effet, j'ai suivi toutes les recommandations de la doc, la procédure tourne, mais la réplication ne se fait pas! plutôt qu'un long discours, voici mon code Code :
Donc la procédure a bien fonctionné (pas d'erreurs) mais n'a pas fait son boulot! Une idée? |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
il faut d'abord rechercher les écarts avec DBMS_RECTIFIER_DIFF.DIFFERENCES
Pour la suite, je cherche comment ça fonctionne |
|
|
00
|
|
|
#3 | ||
|
Membre éclairé
![]() Inscription : juin 2004 Messages : 487 ![]() |
oui Orafrance, tu as raison, je viens de m'en rendre compte.
Mais l'essai n'est toujours pas concluant. Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
effectivement, il supprime de secondaire, les lignes qui ne sont pas dans primaire... essaye de mettre une des lignes de primaire dans secondaire et tu verras
j'ai trouvé des scripts sympa, je suis en train de tester |
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
bien, d'après les scripts fournis par oracle, j'ai le même comportement. A savoir qu'Oracle supprime toutes les lignes de la table à synchroniser qui ne sont pas dans la source
|
|
|
00
|
|
|
#6 | ||||||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Code :
Code :
Code :
|
||||||
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Inscription : juin 2004 Messages : 487 ![]() |
oui, c'est normal qu'il supprime les lignes qui ne sont pas dans la source, par contre, il decrait les ajouter ce qu'il ne fait pas.
Par contre, je viens de faire un nouveau test -concluant celui ci-. La procédure pose donc problème avec deux tables dans lla même base. par contre tout marche parfaitement avec deux tables dans des bases différentes !?????????????????? allez comprendre des fois
|
|
|
00
|
|
|
#8 | |||||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Code :
Code :
Citation:
|
|||||
|
|
00
|
|
|
#9 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 |
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Est-ce-qu'un MERGE ne ferait pas l'affaire ?
Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
|
|
00
|
|
|
#11 | ||||
|
Membre éclairé
![]() Inscription : juin 2004 Messages : 487 ![]() |
Laly, tu es un génie!
Je ne connaissais tout betement pas le merge. c'est même beaucoup mieux, car la procédure diff ne marche pas si la table est référencée par une clée étrangère (elle fair un delete insert au lieu d'un update) Par contre j'ai une autre question. en reprenant ton example, il suffit d'écrire, Code :
malheureusement;, j'ai des table savec beaucoup de colonnes et j'aimerai pouvoir mettre un * ou un row à la place d'une énumération des colonnesà updater ou à inserer. quelque chose de ce type Code :
|
||||
|
|
00
|
|
|
#12 | ||
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Je crois pas que ce soit possible.
Code :
Tu ne peux pas mettre à jour (ou tenter de mettre à jour) les colonnes présentes dans le ON. Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
||
|
|
00
|
|
|
#13 | ||
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Code :
S = primaire dés fois je ne comprends pas tout sur ce forum Bien vu le MERGE
|
||
|
|
00
|
|
|
#14 |
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Source, Destination ?
Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
|
|
00
|
|
|
#15 | |||
|
Membre éclairé
![]() Inscription : juin 2004 Messages : 487 ![]() |
Citation:
Sinon, une autre question. Le merge ne retire pas les lignes de secondaire qui ne sont pas dans primaire. N'y aurait-il pas une solution pour cela? |
|||
|
|
00
|
|
|
#16 |
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Bonjour Aline,
Le MERGE marche à sens unique : tu as une table A et une table temporaire TMP. MERGE met à jour les enregistrements de A par leur valeur dans TMP et insère dans A les lignes de TMP qui ne sont pas dans A. A la fin, toutes les lignes de TMP sont dans A... Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com