|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2008 Messages : 2 ![]() |
Bonjour tout le monde je suis débute dans l'utilisation de talend , et j'ai un soucis en ce moment; je vous explique mon problème.
je voudrais inserer des données d'un fichier dont les champs sont délimités par des points virgule vers une base de données Oracle. pour ce faire j'utilise un tinputDelimited, un Tmap et un tOracleOutput. l'insertion se passe sans problème . je voudrais maintenant faire des tests ou des controls sur les champs avant l'insertion dans la base de données. Exemple je dois inserer un nouveau client dans la base et avant l'insertion je dois verifier que le mode de paiement du client correspond à un mode de paiement autorisé, ou verifier que le groupe du client à inserer correspond à un groupe qui est existe ou est autorisé dans la base de données. en gros comment faire pour mettre en place des controls avant insertion. j'ai deja fait des recherches . du genre (select count(1) from mode_reglement, client where client.champ-a-inserer= mode_reglement. champ-a-verifier) !=0 si c'est different de 0 alors la valeur à inserer existe et est autorisée à être inserée. -avec tfilterrow je ne peux que mettre un filtre (champ superieur inferieur miniscule,...) - avec toracleoutput c'est deja mieux car j'ai dans Advanced Settings j'ai un soucis avec Sql expression, je ne sais pas comment l'utiliser (sil faut appeler une fonction ou requete sql directement). -avec des expressions regulieres dans tmap mais j'ai peu de connaissance dans l'utilisation des expressions regulieres. -en créant une routine(je ne l'ai jamais fait est ce une idée à suivre?) Si je peux avoir des pistes pour avancer ca m'aiderait vraiment pour mon projet, ou toute autre information sur l'utilisation des routines ou des expressions regulieres. je vous remercie d'avance |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() |
Le tFilterRow est une bonne solution, car par rapport aux autres (expression regulières ou advanced settings), le job parait plus clair. En ouvrant le job, on voit tout de suite que les données seront filtrées.
Le tJoin (ou le mapper) permet de faire une jointure avec une autre source (pour vérifier que le groupe est autorisé par exemple). |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : avril 2008 Messages : 38 ![]() |
Bonjour,
en effet tu peux utilisé des lookup pour des jointures ou plutot des filtres avec des expressions ternaires. l'advanced setting du tOracleOutput permet d'ajouter des colonnes supplémentaire entre autre les séquences pour les "id" auto-incrémenté. <<Les bases de données Oracle utilise en tag NEXTVAL pour réaliser une séquence (option auto_increment de MySql). Sur tOracleOutput, il suffit d'ajouter une colonne dans le Advanced settings avec l'expression SQL « EMP_SEQ.NEXTVAL » pour la colonne « ID » de la base avec une colonne intermédiaire TALEND « EMP_SEQ_ID », position « Before » et reference collumn « ID ».>> Je ne suis pas en mesure de te dire si tu peux utiliser des requêtes SQL directement mais comme tu le vois, il est possible d'ajouter des colonnes supplémentaires et de les alimenter avec des données. Jérémie |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : juin 2008 Messages : 2 ![]() |
Merci à vous pour vos réponses finalement jai utilisé des routines java avec la déclaration des fonctions qui vont faire des tests ; ces fonctions seront appelées dans mon job via un javarow.
si je trouve une autre solution je le posterai sur le forum , merci encore |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com