|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 11 ![]() |
Bonjour,
j'ai un soucis assez étonnant lors d'un flux réplication de tables que je dois corriger. Voici un exemple: - j'ai un champs source qui contient le code "1112254500" de type biginteger - j'utilise un KM avec Bulk pour l'intégration des données - Après exécution, le champs cible contient le code "1112254504" de type biginteger Je retrouve donc "aléatoirement" des changements dans la valeur du code dans al cible, toujours un décalage de 4 ou un multiple de 4. Je me suis apperçu que dans sunopsis les champs cibles et source était interprêtés en float. Ensuite après avoir décortiqué le fichier bulk je m'apperçois que certains codes sont écris en écriture scientifique. Pensez vous que le problème puisse venir d'une mauvaise conversion du float vers le biginteger? Comment géreriez vous le problème? Pensez qu'en indiquant à sunopsis de traiter ces champs en Biginteger(et pas en float) pourrai résoudre le problème? Merci d'avance pour vos idées. |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : juillet 2003 Messages : 83 ![]() |
Bonjour,
Quelques questions pour comprendre et trouver ou est le problème Le KM utilisé passe t'il par un fichier plat ? As t'il recours a 1 ou plusieurs tables temporaires pour stocker les chargements intermédiaire ? si oui à quel moment le numérique n'est plus exact ? Quel est le SGBD (source et cible) ? Merci pour ton retour. Cdlt Selecta |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : juillet 2007 Messages : 82 ![]() |
Peut-être qu'en définissant tes champs en Number(20) tu n'aurais plus le problème car il est effectivement possible que Sunopsis se ramasse avec les Bigint et les Float...
|
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juin 2007 Messages : 11 ![]() |
Apparemment en travaillant en biginteger le problème ne se pose plus. le nombre est correctement interprété. En fouillant un petit peu j'ai trouvé une piste pour cette erreur: Etant donné qu'un nombre en float n'est jamais une valeur exact pour une machine, plus la taille de ce nombre est grande, plus l'écart lors de la conversion est grande... Bon ça reste mon avis et je n'ai pas poussé à fond l'étude.
Bon de toute manière ce problème est résolu. Ma conclusion -> ne pas travailler avec de grands nombre en float (surtout si l'utilisation du float n'est pas justifiée!) Pour information, les bases de données source et cible sont des bases SQLServer et en effet il y a un fichier temporaire (BULK) qui est utilisé. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com