|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 21 ![]() |
Bonjour à tous,
J'expose mon problème: Je récupère une date que je mets dans une variable de contexte de type string, et lorsque j'essaie d'utiliser un composant du type tOracleiInput, je me retrouver avec une erreur Oracle : Code :
Voici la requête passée dans mon tOracleInput : Code :
|
||||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 569 ![]() |
Bonjour,
Vu comme ça, le problème peut venir de ces variables en paramètre. Le mieux c'est de les imprimer au moment de l'exécution avant l'appel du toracleinput. Essaye ça : Mets ce bout de code dans un tJava et exécute le à la place du tOracleInput (ou avant). Pour savoir quelles sont les valeurs réellement transmises en paramètre. Mais j'ai remarqué aussi le between. Ce n'est pas entre deux valeurs int? Il faudrait peut être enlever les ' Pour éviter les conversions implicites d'oracle lors des comparaisons... |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 21 ![]() |
Le between ne pose pas de problème.
J'ai vu un article disant qu'Oracle faisait une conversion implicite de certains types de données et notamment de String en Date. Le masque par défaut est dd-MM-yyyy dans Talend. Je vais essayer en utilisant ce masque. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 21 ![]() |
Avec quelques tests simple je m'aperçois que ma variable de contexte ne garde pas la valeur assignée dans mon job. Je ne sais pas comment stocker une variable globale que je garderai après mon job....
|
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 569 ![]() |
Il faut voir à quel niveau tu affecte une valeur à ta variable.
Tu peux utiliser le composant tSetGlobalVar. Si tu lance ton job à partir d'un autre job (job père /fils) il ne faut pas oublier de transmettre les variables de contextes. |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 21 ![]() |
Je transmets entre tous les jobs le contexte.
J'affecte ma valeur dans un premier job : tOracleInput -----> tJava(affectation de la valeur) Ensuite c'est dans le deuxième job lors de l'affichage de ma valeur que je n'ai rien. J'ai essayé avec un tSetGlobalVar, mais la portée de la variable ne dépasse pas le job.... |
|
|
00
|
|
|
#7 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 569 ![]() |
Si tu affecte la valeur dans un tJava. Fais un System.out.println(variable) avant et après l'affectation pour être sûr que ça passe bien.
|
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : juillet 2006 Messages : 21 ![]() |
Oui l'affectation fonctionne bien (print à l'appui avant et après l'affectation).
C'est une fois en dehors du contexte que je n'ai plus la valeur de la variable de contexte. Voici le code pour l'affectation : Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Inscription : novembre 2004 Messages : 569 ![]() |
Comment as-tu déclaré ta variable ?
Le mieux c'est de la rajouter au niveau du référentiel dans contexte (menu à gauche). Ensuite la rajouter au niveau de chaque job père et fils. Je t'invite à faire un tour ici : http://www.talendforge.org/tutorials...lish&idTuto=34 Peux-tu envoyer quelques captures d'écran? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com