|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 43 ![]() |
Bonjour,
Ca fait 2 jours que je me traîne un problème sur un de mes jobs sous BODI, et là je commence à en avoir marre car il n'y a rien de cohérent dans tout ça. Petite précision, mon système marchait avant sur la 6.1 mais depuis que j'ai migré sur la XI je me retrouve avec des erreurs dans un de mes champ. Voilà mon problème : j'ai une table A dans laquelle on trouve :
Le but de mon Data Flow est de remplir mon champ ID_HRE_05M dans la table cible B, qui a la même structure que la table A, en plusieurs étapes :
Le souci c'est que mes données varchar en 3 caractère contiennent un '.' final pour les calculs sur 2 digits. Par exemple si le résultat du calcul précédent donne 92, j'aurais la chaîne '92.' dans mon champ !! J'ai essayé de zappé les 2 premiers points de mon DF en prenant directement les heures ID_HRE de la table A (qui ne prennent donc pas en compte le décalage horaire) et je n'ai pas ce problème... Que se passe-t-il donc ?? Merci d'avance pour votre aide |
||||
|
|
00
|
|
|
#2 |
|
Membre éclairé
![]() Consultant en Business Intelligence Inscription : mai 2006 Messages : 276 ![]() |
Bonjour, peux-tu donner quelques détails?
La fonction concat_date_time est une fonction de ton cru ou est-ce une fonction de BODI? (je n'ai pas accès à BODI pour vérifier qu'elle existe avant une bonne semaine...) Quel est ton SGBD cible? source? J'ai un doute sur ma compréhension de ta question, c'est les 3 champs de ton mapping qui posent problème ou c'est un seul des champs? Les champs cibles sont en quel type? Maintenant, le premier élément pour t'aider, mais c'est un peu de la triche, tu peux ajouter une Query supplémentaire, après la Query qui te pose problème, qui te fais un replace_substr() sur les champs problématiques et qui remplace tes '.' par du vide (''), par contre çà ne marchera qu'avec tes champs intermédiaires en chaines de caractères. |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2005 Messages : 43 ![]() |
Salut Prjprj et merci de t'intéresser à mon problème...
Bon je préfère te dire d'ores et déjà que je pense que tu perds ton temps à essayer de résoudre ce problème, j'ai retourné la question dans tous les sens ces derniers jours, j'ai fais tous les tests possibles et imaginables sans le moindre succès. J'ai donc repris tout le problème depuis sa source pour trouver un autre moyen d'alimenter ce champ. Au final, je fais maintenant des jointures vers une autre table pour l'alimenter... Mais bon si tu y tiens je peux te dire que ta méthode est l'une des premières que j'ai essayé et bien sur elle ne fonctionne pas. Si je reprend mon exemple de 92, tu auras avec cette méthode '920' à la place de '92.' Pourquoi ? Certainement car la valeur en mémoire est 92.0 et que le fait de mettre une chaîne vide à la place ne fait que décaler le zéro vers la gauche... Sinon pour répondre tout de même à tes questions voici quelques infos supplémentaire : concat_date_time est une fonction native de BODI reconnue par Oracle qui est mon SGBD (cible et source). Il n'y a qu'un seul champ qui me pose problème : ID_HRE_05M Et pour le typage voilà comment ça se passe :
Donc on pourrait logiquement se dire que de rajouter une autre query à la fin où on fait le replace substring mais cette fois sur le varchar(3) et non à partir du décimal marcherait... Mais bon je ne me rappelle plus avoir testé cette solution (il me semble mais bon...). Je verrais à l'occasion mais pour l'instant j'attend la mise en prod avant de changer mes données en base de test qui sont correctes pour l'instant grâce à ma solution de secours... Merci ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com