|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
Bonjour,
J'ai un oracleinput et un postgressqlinput relié tous les deux à un T_map. Le oracleinput ets en liaisaon "main" et le postgresinput en liaison "lookup". Dans le oracleintput, je selectionne une table VEHICULE, son immatriculation et sa marque. Dans le postgressql, je selectionne la table de référence des marques T_MARQUE, je rappatrie donc le libellé de la marque et son code. Je dois relié les deux tables dans le t_map en disant que VEHICULE.marque doit être contenu dans T_MARQUE.lib_marque car les deux libellés ne sont pas identiques: en oracle ça donnerait VEHICULE.marque like '%T_MARQUE.lib_marque%' en postgres T_MARQUE.lib_marque *~ VEHICULE.marque comment puis je dire dans un t_map que les colonnes pour réunir les 2 tables ne sont pas égales mais doivent juste contenir le mot de l'une dans l'autre ? Merci |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Benoit DurandConsultant en Business Intelligence Freelance Inscription : mars 2005 Messages : 817 ![]() |
Bonjour,
Il faut mettre ton expression de jointure dans la colonne expr key au niveau de la jointure dans le tMap. L'expression doit être en langage généré, donc java ou perl. Tu utilises quel langage ? |
|
|
00
|
|
|
#3 | ||
|
Membre éclairé
![]() |
Bonjour,
j'ai une petite idée : tu peux créer une routine qui va comparer les deux clés et retourner celle qu'il faut, comme ceci : Code :
Code :
Cle.Contient(VEHICULE.marque,T_MARQUE.lib_marque) |
||
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
Bonjour,
Ah oui, je pensais que dans l'expression key il parlait le langage du input. Alors dans le t_map je n'arrive pas à mettre dans l'expression key la variable de mon lookup. Je m'explique: row1 immatriculation marque row2 id_marque lib_marque dans l'expression key de mon row2.lib_marque je ne peux pas mettre : Cle.Contient(row1.marque,T_MARQUE.lib_marque) ou Cle.Contient(row1.marque,row2.lib_marque) ou Cle.Contient(row1.marque,lib_marque) il ne reconnait pas la deuxième paramètre il dit qu'il ne peux pas résoudre T_marque ou row2 ou lib_marque.... |
|
|
00
|
|
|
#5 | |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
Citation:
J'utilise le langage java. |
|
|
|
00
|
|
|
#6 | ||
|
Membre éclairé
![]() |
Oui c'est vrai la variable de la table de lookup n'est pas encore connue à l'appel de la fonction...Tu peux essayer de ne faire aucune jointure sur les tables en entrée du tMap, puis d'appeler la fonction dans le filtre de la table en sortie du tMap.
Il faut alors que la fonction renvoie un booléen : Code :
|
||
|
|
00
|
|
|
#7 | ||||||
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
ok je mets ça dans le t_map sur la table de sortie en filtre:
Code :
Est ce que je dois cochée une des flèches dans la tables de sortie? sinon je voulais faire autrement: t_oracleinput -> tJava -> t_postgressql -> t_map -> fichiersortie dans le "tJava" je déclare Code :
Code :
Exception in component tJava_2 java.lang.NullPointerException at java.util.Hashtable.put(Unknown Source) at java.util.Properties.setProperty(Unknown Source) J'ai déjà utilisé des variables comme ça dans un tjava et ça fonctionnait... est ce que je suis censé déclarer cette variable quelque part? |
||||||
|
|
00
|
|
|
#8 | ||||||||
|
Membre éclairé
![]() |
Bonjour,
Citation:
Citation:
Aussi, dans le tPostgressql la requête n'est pas bonne car il ne faut pas échapper les doubles quotes : Code :
|
||||||||
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : juin 2006 Messages : 109 ![]() |
Bonjour,
super ça marche, j'avais essayé le t_javarow mais j'avais oublié de lister les variables dans le schéma! Merci beaucoup! Je trouve cela plus propre ma deuxième solution, c'est-à-dire : le oracleinput -> le javarow ->le postgresqlinput -> le tmap-> la sortie Merci encore et bonne journée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com