Bonjour,
Je cherche à envoyer des données depuis ORACLE vers ACCESS ou MySQL (vers EXCEL ça marche parfaitement).
Je suis en version TOS 3.0.5 (mais même chose en 3.1.1) et Java 1.6.
Voici mon job tout simple pour Access (Access version 2000):
![]()
Avec la description du job Output :
Le message d'erreur que j'obtient est le suivant :
Starting job TestAccess at 17:37 16/06/2009.Exception in component tAccessOutput_1
java.sql.SQLException: [Microsoft][Pilote ODBC Microsoft Access] Erreur de syntaxe dans l'instruction CREATE TABLE.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
at reprise.testaccess_0_1.TestAccess.tOracleInput_1Process(TestAccess.java:648)
at reprise.testaccess_0_1.TestAccess.runJobInTOS(TestAccess.java:1148)
at reprise.testaccess_0_1.TestAccess.main(TestAccess.java:1067)
Job TestAccess ended at 17:37 16/06/2009. [exit code=1]
Il s'agit d'un problème de SYNTAXE.
Le code généré est le suivant :
stmtCreate_tAccessOutput_1.execute("CREATE TABLE
["
+ tableName_tAccessOutput_1
+ "]([FC_CLE] NUMBER(10,0) not null ,[FC_CODE] VARCHAR2(10,0) not null ,[FC_NOM] VARCHAR2(50,0) not null ,[FC_COMMENT] LONG(0,0) ,[FC_DESAC] DATE ,[FC_DATECREA] DATE ,[FC_DATEMODIF] DATE ,[FC_II_CREEPAR] NUMBER(10,0) not null ,[FC_II_MODIFPAR] NUMBER(10,0) not null ,[FC_FILIALE] VARCHAR2(1,0) ,[FC_IE_CLE] NUMBER(10,0) ,[FC_CHRONO_ID] VARCHAR2(2,0) ,primary key([FC_CLE]))");
Or Access n'aime pas les caractères [ et ] pour identifier les tables. Aussi il fait une erreur de syntaxe.
Même problème avec MySQL (qui tourne avec EasyPhp), voici mon job :
Avec la description du transformer tMySqlOutput :
Le message d'erreur est le suivant (j'ai enlevé du verbiage pour que cela soit plus lisible) :
Starting job TestReprise at 17:33 16/06/2009.
Exception in component tMysqlOutput_1
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Erreur de syntaxe près de 'NUMBER(10,0) not null ,`FC_CODE` VARCHAR2(10,0) not null ,`FC_NOM` VARCHAR2(' à la ligne 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
...supprimé...
Job TestReprise ended at 17:33 16/06/2009. [exit code=1]
Il s'agit d'un problème de SYNTAXE dans la requête (MySQL n'aime pas les NUMBER(10,0) mais préfère les float.
Aussi je ne comprends pas que TALEND me génère des requêtes dont la syntaxe n'est pas correcte.
Je n'ai rien vu depuis 2 jours que je cherche dans les blogs, sur le site TalendForge ni sur ce forum.
Je suis débutant.
J'ai réinstallé Talend, réinstallé ma JVM, je suis passé de la TOS 3.1.1 à la TOS 3.0.5 au cas où, j'ai lu les tutos, j'ai fait tout ce qui était raisonnablement en mon pouvoir...
Aussi je sollicite votre aide sur le sujet.
Merci beaucoup par avance.
Partager