Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > ETL > Talend
Talend Forum d'entraide sur Talend (Talend Open Studio, ...). Avant de poster --> FAQ Talend, Tutoriels Talend
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/06/2011, 16h09   #1
Invité de passage
 
Femme
Inscription : juin 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : juin 2011
Messages : 5
Points : 0
Points : 0
Par défaut PB Execution Job TALEND

Bonjour,

http://jsdarges.developpez.com/tutor...d-open-studio/

Je me suis servi du lien ci-dessus pour créer deux transformations sur Talend vis bas Access (Séparer Table + Charger les données dans les tables créées), du coup la premier job s'est bien exécuté, cependant j'ai un problème sur le deuxième job au niveau du code SQL de l'étape tAccessRow, voici le code:

"INSERT INTO "+(String)globalMap.get("TABLE_NAME")+"
SELECT ORGANISATION, ANNEE, MOIS, NUMERO_COMPTE, LIBELLE_COMPTE, MONTANT_YTD, MONTANT_MOIS, DEVISE, DEBIT_CREDIT
FROM FINANCE
WHERE BILAN_COMPTERESULTAT= "+(String)globalMap.get("TABLE_NAME")+"
"

Voici le message d'erreur :
[Microsoft][Pilote ODBC Microsoft Access] Trop peu de paramètres. 1 attendu.[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction INSERT INTO.

Si vous pouvez m'aider ça serait simpa, parce que je galère un peu là !!

Merci d'avance
Sopotier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h07   #2
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Bonjour,

Apparemment cette erreur n' a pas de rapport direct avec TOS.
Il s'agit d'une erreur dans ton code SQL.

Essaie de créer la requête et de la tester directement sur ta base et après sa validation tu pourras remplacer la partie dynamique de ta requête par la valeur (String)globalMap.get("TABLE_NAME").

Bonne chance.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h08   #3
Membre du Club
 
Inscription : janvier 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 74
Points : 43
Points : 43
Bonjour

j'essaierai

"INSERT INTO ' "+(String)globalMap.get("TABLE_NAME")+" '
SELECT ORGANISATION, ANNEE, MOIS, NUMERO_COMPTE, LIBELLE_COMPTE, MONTANT_YTD, MONTANT_MOIS, DEVISE, DEBIT_CREDIT
FROM FINANCE
WHERE BILAN_COMPTERESULTAT= "+(String)globalMap.get("TABLE_NAME")+"
"
andre94200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h13   #4
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Salut,

Quelle est la requête que tu veux exécuter exactement et sur quelle type de base ?

Sinon il faut que tu vérifies si le globalMap est bien rempli.
càd est ce que (String)globalMap.get("TABLE_NAME") ne renvoi pas une valeur erronée.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h13   #5
Invité de passage
 
Femme
Inscription : juin 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : juin 2011
Messages : 5
Points : 0
Points : 0
Citation:
Envoyé par andre94200 Voir le message
Bonjour

j'essaierai

"INSERT INTO ' "+(String)globalMap.get("TABLE_NAME")+" '
SELECT ORGANISATION, ANNEE, MOIS, NUMERO_COMPTE, LIBELLE_COMPTE, MONTANT_YTD, MONTANT_MOIS, DEVISE, DEBIT_CREDIT
FROM FINANCE
WHERE BILAN_COMPTERESULTAT= "+(String)globalMap.get("TABLE_NAME")+"
"
J'ai essayé mais j'ai un autre message d'erreur
[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la requête. La clause de la requête est incomplète.[Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans la requête. La clause de la requête est incomplète.

Merci,
Sopotier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h19   #6
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Quelle est la requête que tu veux lancer sans la partie qui change. Remplace le GlobalMap machin truc par un exemple de valeur possible.
Comme j'ai dis avant c'est toujours un problème SQL et non pas un problème Talend ni Java.
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h27   #7
Invité de passage
 
Femme
Inscription : juin 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : juin 2011
Messages : 5
Points : 0
Points : 0
Citation:
Envoyé par haskouse Voir le message
Salut,

Quelle est la requête que tu veux exécuter exactement et sur quelle type de base ?

Sinon il faut que tu vérifies si le globalMap est bien rempli.
càd est ce que (String)globalMap.get("TABLE_NAME") ne renvoi pas une valeur erronée.
Bonjour,

Alors c'est très simple, j'ai une base Access avec une seule Table (Finance) avec les champs suivants (Bilan_Compteresultat, Organisation, Annee, Mois, Numero_compte, Libelle_compte, Montant_YTD, Montant_Mois, Devise et Debit_Credit) et dans cette base je veux créer deux table une bilan et une compte de résultat (champ Bilan_Compteresultat) avec un rapatriement des données correspondantes.

J'ai déjà créer la transformation sous talend qui me permet de créer deux tables différentes. (BILAN et CR), mais je n'arrive pas à exécuter correctement la deuxième transformation, je pense que cela vient de mon code Sql mais je n'arrive pas à voir ou est mon erreur.

Ci-joint les copies d'écrans de mes transformations en fichier word.

Merci,

Cordialement,
Fichiers attachés
Type de fichier : doc Copie d'écran Talend.doc (146,0 Ko, 3 affichages)
Sopotier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h27   #8
Membre du Club
 
Inscription : janvier 2010
Messages : 74
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 74
Points : 43
Points : 43
Tu inséres dans une table et cette dernière est dans la clause where

je ne comprends pas bien
andre94200 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h38   #9
Invité de passage
 
Femme
Inscription : juin 2011
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : juin 2011
Messages : 5
Points : 0
Points : 0
Citation:
Envoyé par andre94200 Voir le message
Tu inséres dans une table et cette dernière est dans la clause where

je ne comprends pas bien
En fait, étant novice sur Talend j'ai vraiment suivit les deux vidéos (Séparer Table et Charger les données dans les tables crées) du lien ci-dessous
http://jsdarges.developpez.com/tutor...d-open-studio/

Merci,
Sopotier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 17h42   #10
Membre Expert
 
Avatar de haskouse
 
Homme Mustapha EL HASSAK
Ingénieur développement logiciels
Inscription : août 2009
Messages : 627
Détails du profil
Informations personnelles :
Nom : Homme Mustapha EL HASSAK
Âge : 26
Localisation : Maroc

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Finance

Informations forums :
Inscription : août 2009
Messages : 627
Points : 1 514
Points : 1 514
Bon apparemment on ne se comprend toujours pas

J'ai un peu modifié ton code, le voilà modifié même si je pense qu' il est faux

Code :
1
2
3

"INSERT INTO " + ((String)globalMap.get("TABLE_NAME")) + " SELECT ORGANISATION, ANNEE, MOIS, NUMERO_COMPTE, LIBELLE_COMPTE, MONTANT_YTD, MONTANT_MOIS, DEVISE, DEBIT_CREDIT FROM FINANCE WHERE BILAN_COMPTERESULTAT= '"+ ((String)globalMap.get("TABLE_NAME")) + "'";
Ceci dit, si ton
Code :
((String)globalMap.get("TABLE_NAME")) 
contient la valeur "MATABLE" par exemple, voilà la requête qui sera executé :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14

INSERTINTO MATABLE
SELECT ORGANISATION,
ANNEE,
MOIS,
NUMERO_COMPTE,
LIBELLE_COMPTE,
MONTANT_YTD,
MONTANT_MOIS,
DEVISE,
DEBIT_CREDIT
FROM FINANCE
WHERE BILAN_COMPTERESULTAT = 'MATABLE'
Et cette dernière ne veut rien dire !!
__________________
Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant. "Mohammed le Messager d’Allah" (que la paix et le salut d'Allah soient sur lui)

Mes articles publiés
haskouse est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h42.


 
 
 
 
Partenaires

Hébergement Web