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

Autres outils décisionnels Discussion :

[Elementum] Insertion de valeurs nulles dans une colonne numérique d'un table


Sujet :

Autres outils décisionnels

  1. #1
    Membre régulier
    Homme Profil pro
    Intégrateur
    Inscrit en
    Novembre 2004
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2004
    Messages : 139
    Points : 86
    Points
    86
    Par défaut [Elementum] Insertion de valeurs nulles dans une colonne numérique d'un table
    Bonjour,

    Le SGBD : mySQL
    Elementum : OS 3.0.4.3

    Je tente désespérement d'insérer des valeurs nulles dans une table avec une seule colonne numérique (qui peut contenir des valeurs nulles)

    Deux composants : InputFile et OutputTable

    En entrée, un malheureux fichier contenant deux lignes :
    • la première 10
    • la seconde vide (un retour chariot)


    Le DML du "InputFile" est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    record
      decimal("\n") toto =NULL("") /*INTEGER*/;
    end;
    Après exécution, j'ai deux lignes en tables avec toto=10 et toto=0 (au lieu de null)

    Pouvez-vous me donner un coup de main ?
    Merci par avance de vos réponses

  2. #2
    Membre régulier
    Homme Profil pro
    Intégrateur
    Inscrit en
    Novembre 2004
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2004
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    Je viens de trouver une solution en choisissant le mode "api" sur le composant "Output Table".

    Dans ce cas, si j'ai compris la documentation, Abinitio utilise ODBC avec des insert unitaires (au lieu de s'appuyer sur un outil de chargement, sans doute la commande LOAD DATA)... A partir de ce moment, tout se passe de manière attendue.

    Par contre, avec un nombre de lignes conséquent, les performances ne sont pas au rendez-vous... vraiment pas...

    Existe-t-il une solution avec le mode "Utility" (soit le mode par défaut) ?

  3. #3
    Membre régulier
    Homme Profil pro
    Intégrateur
    Inscrit en
    Novembre 2004
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2004
    Messages : 139
    Points : 86
    Points
    86
    Par défaut
    A priori, il y a une anomalie dans cette version d'Elementum sous le SGBD mySQL. Il doit mal construire la commande "LOAD DATA...INFILE" dans le cas de l'insertion de valeur nulle.

    Un collègue a trouvé une construction de graphe pour contourner le problème... Merci à lui !

    Ci-dessous la solution

    Le DML pour le "InputFile"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    record
     
    string("\n") data;
     
    // Enter your record definition here
     
    end;
    Le DML pour le composant "Reformat" à ajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    out :: reformat(in) =
     
    begin
     
    out.val:1: if (in.data == '') '\\N';
     
    out.val:: in.data;
     
    end;
    Le DML pour le composant "OutputTable"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    record
     
    decimal("\x01") val = NULL("") /*INTEGER*/;
     
    string(1) newline = "\n";
     
    end

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. insertion des valeurs checkbox dans une colonne
    Par ronze dans le forum Langage
    Réponses: 0
    Dernier message: 23/06/2011, 16h33
  2. Insertion d'une valeur null pour une colonne
    Par bigggalll dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 24/03/2010, 15h01
  3. Insérer la valeur NULL dans une colonne de type number
    Par cocoaparis dans le forum PL/SQL
    Réponses: 8
    Dernier message: 08/07/2009, 15h46
  4. insérer la valeur null dans une colonne
    Par loic20h28 dans le forum C#
    Réponses: 12
    Dernier message: 27/05/2009, 11h21
  5. Réponses: 2
    Dernier message: 26/01/2009, 15h38

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