|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Consultant en Business Intelligence Inscription : juillet 2011 Messages : 17 ![]() |
Bonjour,
je travaille sur informatica et je souhaiterais modifier simultanément plusieurs chaînes de caractères présentes dans ma table source. Ma table comprend une colonne avec des énumérations d'outils informatiques. Ce que j'aimerais faire, c'est que tout soit écrit de manière uniforme. Par exemple, on trouve 'INFORMATICA', 'informatica' ou 'Informatica' dans mon tableau et je voudrais tout transformer en 'Informatica' J'ai essayé de faire une requête sql dans le source qualifier, ou bien d'utiliser des fonctions d'informatica mais je n'arrive pas à changer plus d'une chaîne à la fois. Merci pour votre aide! |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Consultant en Business Intelligence Inscription : avril 2005 Messages : 676 ![]() |
Bonjour,
Si j'ai bien compris, pour une colonne donnée, tu voudrais qu'ils soient tous écrits de la même manière. Si tu dis que tu as modifié le SQ, c'est que ta source est de la base de donnée. J'ai un peu du mal à voir : tu ne peux pas overrider ta requête et mettre à la place : select champ1, champ2, INITCAP(champ3) from ma_table Je n'ai pas informatica sous la main, mais il n'existe pas de fonction Initcap ? (ou alors la bricoler à la main, à coup de LOWER, UPPER et SUBSTRING)
__________________
Dogbert : Here's my final report on your company. I've concluded you're doomed. You waste too much money on consultants. Boss : You're a consultant. Dogbert : Ironic, isn't it ? ~~ La culture, c'est comme la confiture : quand on l'aime, on la partage. Amateur de photos et de groupes de rock qui gagnent à être connus ? Clique WWW ! |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Consultant en Business Intelligence Inscription : juillet 2011 Messages : 17 ![]() |
Si si il existe bien une fonction Initcap dans Informatica mais le problème c'est que je ne veux pas forcément une écriture majuscule + minuscules (par ex, SQL Server écrit de cette façon).
Je pense qu'il faudrait faire du cas par cas, étant donné que j'ai un nombre limité d'outils dans ma table. J'ai essayé la fonction replace(A, 'INFORMATICA','Informatica') qui va bien modifier toutes les chaînes 'INFORMATICA', par contre je n'arrive pas à utiliser la fonction pour changer plus d'une chaîne... |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Consultant en Business Intelligence Inscription : avril 2005 Messages : 676 ![]() |
Je dois t'avouer que je ne comprends pas trop ce que tu veux faire
Informatica (et les ETL en général) t'offre pas mal de règles pour uniformiser, mais j'ai l'impression que tu veux désuniformiser ? Tu pourrais donner un exemple concret, avec quelques enregistrements ? Sinon, si tu réussis à établir une liste de cas et que tu es sûre qu'elle ne bougera pas, tu peux toujours créer une table de paramètres et faire une lookup dessus.
__________________
Dogbert : Here's my final report on your company. I've concluded you're doomed. You waste too much money on consultants. Boss : You're a consultant. Dogbert : Ironic, isn't it ? ~~ La culture, c'est comme la confiture : quand on l'aime, on la partage. Amateur de photos et de groupes de rock qui gagnent à être connus ? Clique WWW ! |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Consultant en Business Intelligence Inscription : juillet 2011 Messages : 17 ![]() |
Non je ne veux pas désuniformiser, au contraire!
Voici en pièce jointe une extraction de ma table de travail avec 3 colonnes (id_user, sgbd et outil). Comme tu peux le voir, un même sgbd/outil possède plusiurs écritures différentes, par ex ORACLE, oracle ou essbase, Essbase... Ce que j'aimerais faire, c'est n'avoir qu'une seule écriture par sgbd/outil. La fonction replace marche bien mais je n'arrive pas à faire plus d'un changement à la fois. Ya t-il un moyen pour effectuer simultanément tous les changements? |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Consultant en Business Intelligence Inscription : avril 2005 Messages : 676 ![]() |
Je ne vois pas d'autres solutions que, par exemple, de faire un UPPER de toute la colonne...
__________________
Dogbert : Here's my final report on your company. I've concluded you're doomed. You waste too much money on consultants. Boss : You're a consultant. Dogbert : Ironic, isn't it ? ~~ La culture, c'est comme la confiture : quand on l'aime, on la partage. Amateur de photos et de groupes de rock qui gagnent à être connus ? Clique WWW ! |
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Consultant en Business Intelligence Inscription : juillet 2011 Messages : 17 ![]() |
Finalement je m'en suis sortie avec la fonction DECODE en indiquant à chaque fois l'écriture que je souhaitais
|
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Consultant en Business Intelligence Inscription : avril 2005 Messages : 676 ![]() |
En espérant que tu n'as pas de nouveaux "cas" qui apparaissent au fur et à mesure. C'est pour ça qu'il vaut mieux utiliser une table de paramètre sur laquelle faire une lookup. Le fonctionnement est similaire, mais c'est plus "maintenable", en ce sens que tu peux rajouter les codes (et son decode) directement dans la table au lieu de rajouter des valeurs dans le mapping.
__________________
Dogbert : Here's my final report on your company. I've concluded you're doomed. You waste too much money on consultants. Boss : You're a consultant. Dogbert : Ironic, isn't it ? ~~ La culture, c'est comme la confiture : quand on l'aime, on la partage. Amateur de photos et de groupes de rock qui gagnent à être connus ? Clique WWW ! |
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Consultant en Business Intelligence Inscription : juillet 2011 Messages : 17 ![]() |
Finalement tu as raison l'utilisation d'une table de paramètres me semble plus appropriée, il me reste à voir comment je peux l'utiliser...
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Consultant en Business Intelligence Inscription : avril 2005 Messages : 676 ![]() |
Heu, hé bien sous forme de lookup par exemple !
__________________
Dogbert : Here's my final report on your company. I've concluded you're doomed. You waste too much money on consultants. Boss : You're a consultant. Dogbert : Ironic, isn't it ? ~~ La culture, c'est comme la confiture : quand on l'aime, on la partage. Amateur de photos et de groupes de rock qui gagnent à être connus ? Clique WWW ! |
|
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Consultant en Business Intelligence Inscription : juillet 2011 Messages : 17 ![]() |
Je m'en suis sortie avec une jointure finalement, parce que j'ai dû crée un port supplémentaire pour la condition d'égalité (ce qui n'est pas possible avec le lookup car l'égalité se fait forcément sur un port déjà existant) et tout marche nickel!
Merci en tout cas pour tes conseils! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com