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

DB2 Discussion :

Mettre un csv dans une table AS400


Sujet :

DB2

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2015
    Messages : 98
    Points : 69
    Points
    69
    Par défaut Mettre un csv dans une table AS400
    Bonjour,

    A la base j'ai un csv sur l'IFS qui correspond au nombre de colonne de ma table . Avec un un CPYFRMIMPF ça marche to seul.
    La j'ai un csv hybride dont je ne connais pas le nombre de séparation de colonne à l'avance.
    Par exemple , je peux avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    AIDESESH                    
    AIDESESH;MNAIDAL            
    AIDESESH;ESHAPLRLS          
    AIDESESH;APL                
    AIDESESH;APL;FCL718EJ       
    AIDESESH;APL;FCL710EJ       
    AIDESESH;APL;FCL700EJ       
    AIDESESH;MNAIDMSA           
    AIDESESH;MNAIDRMSA
    Soit 3 colonnes. J'ai essayé de l'intégrer dans un fichier de 10 colonnes (de 10A chacune), mais ça ne marche pas, il demande que tous les champs de la table soient alimentés.

    Comment peux-t-on l'intégrer. Je sèche....

  2. #2
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Mars 2015
    Messages : 98
    Points : 69
    Points
    69
    Par défaut
    J'ai trouvé il faut mettre la valeur "Remplacement valeurs indéf" (en rouge) dans la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     CPYFRMIMPF FROMSTMF(&NOMIFS) TOFILE(MYLIB/MENUW) +     
                  MBROPT(*REPLACE) RCDDLM(*CRLF) +           
                  STRDLM(*NONE) RMVBLANK(*BOTH) FLDDLM(';') +
                  DECPNT(*COMMA) RPLNULLVAL(*FLDDFT)

  3. #3
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 134
    Points : 38 557
    Points
    38 557
    Billets dans le blog
    9
    Par défaut
    Il y a une éternité que je ne suis pas intervenu sur DB2 i (AS/400), mais d'après la documentation ICI, si le fichier en entrée ne contient pas les valeurs pour toutes les colonnes, celles qui n'ont pas de valeur sont marquées "null".
    Il faut donc que les colonnes cibles soient "nullables"

    Extrait :

    4. If the data of the from-file does not represent all the fields in the to-file, the fields of the to-file will be set to null. If this happens and the to-file fields do not allow a null value, an error will occur and the record will not be copied to the to-file.
    5. A null field in the from-file can be specified by two adjacent field delimiters, two adjacent string delimiters or a field delimiter followed by a record delimiter.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Ingénieur d'Etude Mainframe/AS400
    Inscrit en
    Novembre 2012
    Messages
    1 767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'Etude Mainframe/AS400
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2012
    Messages : 1 767
    Points : 10 764
    Points
    10 764
    Par défaut
    Citation Envoyé par totofff78 Voir le message
    J'ai trouvé il faut mettre la valeur "Remplacement valeurs indéf" (en rouge) dans la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     CPYFRMIMPF FROMSTMF(&NOMIFS) TOFILE(MYLIB/MENUW) +     
                  MBROPT(*REPLACE) RCDDLM(*CRLF) +           
                  STRDLM(*NONE) RMVBLANK(*BOTH) FLDDLM(';') +
                  DECPNT(*COMMA) RPLNULLVAL(*FLDDFT)
    Bonjour, tu as trouvé tout seul effectivement c'est ce qu'il fallait faire. Et il faut toujours faire attention au caractère de fin de ligne. *CRLF pour fichiers windows, *LF pour fichiers unix généralement.

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

Discussions similaires

  1. [MySQL] mettre un tableau dans une table mysql
    Par lodan dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/11/2006, 23h13
  2. Importer un txt (csv) dans une table mysql sur multimania
    Par minogttao dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/11/2006, 18h33
  3. Mettre un select dans une table
    Par bertlef dans le forum JDeveloper
    Réponses: 1
    Dernier message: 12/09/2006, 17h04
  4. Impossible d'importer un fichier csv dans une table sous MySQL
    Par manue85 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 20/04/2006, 12h06
  5. Comment importer un document CSV dans une table MySql ?
    Par magic8392 dans le forum Requêtes
    Réponses: 6
    Dernier message: 04/02/2005, 11h03

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