IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Erreurs de syntaxes CREATE TABLE sur Access + MySQL


Sujet :

Développement de jobs

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Erreurs de syntaxes CREATE TABLE sur Access + MySQL
    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):

    Nom : Access1.jpg
Affichages : 477
Taille : 5,4 Ko

    Avec la description du job Output :

    Nom : Access2.jpg
Affichages : 457
Taille : 25,5 Ko

    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 :

    Nom : MySQL1.jpg
Affichages : 453
Taille : 6,3 Ko

    Avec la description du transformer tMySqlOutput :

    Nom : MySQL2.jpg
Affichages : 490
Taille : 31,6 Ko

    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.

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    J'ai déjà eu ce genre de problèmes.

    Les requêtes SELECT, INSERT et UPDATE de Talend sont correctement générées.

    En revanche, les requêtes de création de tables automatiquement générées sont souvent approximatives du point de vue de la syntaxe...

    Pour nettoyer une table, le mieux est donc de passer par un composant "tTypeBaseRow", et d'écrire soit-même la requête de création.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Problème de syntaxe CREATE TABLE
    Merci de votre réponse.
    Pourtant a priori ces composants devraient fonctionner.
    Que depuis le temps les CREATE TABLE de TALEND soient mal définis syntaxiquement me semble un peu gros.

    Par ailleurs j'ai trouvé un bug reporté sur le tAccessOutput en création de table avec l'option "create table if not exists" et a priori c'est corrigé et cela fonctionne : http://www.talendforge.org/bugs/view.php?id=3098.

    Car si on doit écrire les requêtes de création à la main l'utilisation de TALEND perd beaucoup de son intérêt...

    Je vais quand même voir ce que vous proposez comme contournement, merci.

    Cependant si quelqu'un a la solution miracle qui ferait fonctionner ces composants je suis preneur...

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/12/2007, 14h06
  2. Réponses: 1
    Dernier message: 14/09/2007, 16h50
  3. Syntax CREATE TABLE
    Par Muffyn dans le forum Access
    Réponses: 5
    Dernier message: 14/09/2006, 14h05
  4. Réponses: 4
    Dernier message: 30/08/2006, 08h37
  5. Syntaxe CREATE Table et option "Chaine vide au
    Par leteltel dans le forum Access
    Réponses: 2
    Dernier message: 10/02/2006, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo