Talend: la Requête de Base de données avec des Cordes/Paramètres déjà définis
Comment puis-je effectuer une Requête à ma Base de données (à l'aide de tOracleInput), comme un Sélectionnez, et l'utilisation des Chaînes de caractères qui sont déjà définis comme paramètres dans d'autres composants, par exemple dans un "tFlowToIterate' ?
Par exemple: "SÉLECTIONNEZ * à partir de TABLE_X où FIELD_X= ? ;"
Mon '?' est la variable qui vient de mon tFlowToIterate composant (foo). J'ai déjà essayé avec (String)globalMap.get("foo"), et d'autres formes similaires...
Grâce
[Talend Open Studio for Data Integration v5.3.1;
Base de données: Oracle]
L'étape 3 de vos fonctions? 😉 Donnez-moi 5 minutes pour mieux comprendre vos besoins
🙂 J'ai trouvé que "tMysqlRow' a un PreparedStatement table dans l'onglet paramètres Avancés. Que c'est ce dont j'ai besoin. Mais je suis en utilisant un Oracle BD.
Je pense que je peux utiliser le "tOracleRow", au lieu de la "tOracleInput'
🙂 J'ai trouvé que "tMysqlRow' a un PreparedStatement table dans l'onglet paramètres Avancés. Que c'est ce dont j'ai besoin. Mais je suis en utilisant un Oracle BD.
Je pense que je peux utiliser le "tOracleRow", au lieu de la "tOracleInput'
OriginalL'auteur user2144555 | 2013-12-04
Vous devez vous connecter pour publier un commentaire.
Vous avez répondu par vous-même.
tOracleInput
composant accepte la requête en tant que paramètre. C'est une très ennuyeux java String, pas plus, pas moins. Cela signifie que si vous souhaitez utiliser un globalMap élément à l'intérieur d'une requête, il vous suffit de faire une java de concaténation de Chaîne. Quelque chose comme ça:mais ce ne travail (regardez bien sur les guillemets):
Garder à l'esprit que si vous écrivez une requête à l'aide de la concaténation de chaîne et externe de vars, l'éditeur de requête sera probablement sur le point de rater toutes les citations, générant une fracture de la requête.
Un conseil, je n'ai jamais suggérer d'utiliser le "*" de l'opérateur à l'intérieur d'une base de données de la composante d'entrée comme
tOracleInput
. Talend a un fixe-schéma de la structure qui est généré lors de la compilation. Cela signifie que si un jour vous allez ajouter une colonne à TABLE_X, votre ETL sera voué à l'échec.Une solution plus robuste est la suivante:
OriginalL'auteur Gabriele B
Vous avez juste besoin de concaténer avec votre variable.
Donc dans votre cas, il devrait ressembler à:
OriginalL'auteur ydaetskcoR