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 :

ZOS -Comment importer des données de type CSV?


Sujet :

DB2

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 11
    Points
    11
    Par défaut ZOS -Comment importer des données de type CSV?
    Bonjour,

    Un de nos partenaires doit nous faire parvenir des données, via CFT ,délimitées par des ";".
    sur un environnement micro pas de pbme on sait faire.

    Maintenant là on est sous DB2 mainframe ZOS et là cela se complique un peu

    auriez vous des suggestions

    1 Sur Quel est le meilleur format à definir :
    FB ?
    VB ?
    quelle taille ? (à minima une 100aine de car , au maximum inconnu ?)

    Comment peut on récupérer ces données et les charger dans des tables DB2 de manière automatique ?
    et si possiblle un exemple de JCL

    Merci d'avance

  2. #2
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Avec le LOAD, il y a des possibilités.

    recherche "delimited" dans la doc, tu tomberas sur loaded delimited files

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 100
    Points
    100
    Par défaut
    Si j'ai bien compris tu veux faire du Load positionnel

    exemple de fichier à loader :


    ----+----1----+----2----+----3----+----4
    2010-07-02;201007-02;22.40.18;JOB02776;

    donc dans ta Sysin tu spécifies positionnellement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    LOAD DATA LOG NO RESUME YES  INDDN SYSREC00 
    NOCOPYPEND                                  
    INTO TABLE qualifier.nomde table                     
     
    cols1      psoition (1)       date external,
    cols2      position (12)      date external,
    cols3      psoition (23)      time external,
    cols4      position (32)      ,
     
     
    etc .........

  4. #4
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Je ne suis pas d'accord avec Macmini95.

    Un fichier csv est très souvent de taille variable, et db2 permet de charger des données depuis des fichiers de type csv (format delimited),
    ce genre de sysin (prise telle quelle dans la doc) me semble plus adaptée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         LOAD DATA
              FORMAT DELIMITED COLDEL ',' CHARDEL '"' DECPT '.'
              INTO TABLE TBQB0103
                  (FILENO   CHAR,
                   DATE1    DATE EXTERNAL,
                   TIME1    TIME EXTERNAL,
                   TIMESTMP TIMESTAMP EXTERNAL)
    bonne journée

  5. #5
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 100
    Points
    100
    Par défaut
    Bernard je ne connaissais pas cette syntaxe mais il vrai que cela à l'air nettement plus pratique Merci pour la découverte

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 15
    Points : 11
    Points
    11
    Par défaut Merci à tous
    Citation Envoyé par bernard59139 Voir le message
    Je ne suis pas d'accord avec Macmini95.

    Un fichier csv est très souvent de taille variable, et db2 permet de charger des données depuis des fichiers de type csv (format delimited),
    ce genre de sysin (prise telle quelle dans la doc) me semble plus adaptée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         LOAD DATA
              FORMAT DELIMITED COLDEL ',' CHARDEL '"' DECPT '.'
              INTO TABLE TBQB0103
                  (FILENO   CHAR,
                   DATE1    DATE EXTERNAL,
                   TIME1    TIME EXTERNAL,
                   TIMESTMP TIMESTAMP EXTERNAL)
    bonne journée

    Merci à tous.
    Désolé de la coupure d'images depuis la question ... problème de FAI et pas question de se connecter à ces forums au boulot.

    super
    Comme quoi cela m'apprendra . J'en ai pourtant lu des docs, mais comme toujours trop vite ou pas la bonne.
    Et les experts de ma boite (les sachants comme ils disent), pas une fois ils n'ont évoqué/cherché ce genre de chose.
    J'avais beau leur dire que cela m'étonnait vraiment que DB2 sur mainframe ne fasse pas une chose aussi basique, possible notamment par DBASE 3 il y a 25 ans, voire même par Dbase 2 sur CPM et sur Aplle ou Amstrad il y a même plus longtemps .
    La réponse a toujours été la même ... T'as qu'à faire un module cobol pour lire les enreg, les parser et constituer un fichier à plat qui sera loadé ......


    PS : j'avais été voir les jcls pour voir les déchargements et si on ne produisait pas directement du CSV et là je vous raconte pas le nbre de jcls qui découpent et rajoutent (par Sort ouf ..) les , ; ou * nécessaires...

    => Encore merci pour ces réponses que je vais essayer de tester et faire appliquer.
    Si cela marche j'aurais peute être plein de nvx amis , et pas mal de nouveaux ennemis mais tant pis c'est la vie..

  7. #7
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    1 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 473
    Points : 3 283
    Points
    3 283
    Par défaut
    Citation Envoyé par gritchefr Voir le message
    ...
    Et les experts de ma boite (les sachants comme ils disent), pas une fois ils n'ont évoqué/cherché ce genre de chose.
    J'avais beau leur dire que cela m'étonnait vraiment que DB2 sur mainframe ne fasse pas une chose aussi basique, possible notamment par DBASE 3 il y a 25 ans, voire même par Dbase 2 sur CPM et sur Aplle ou Amstrad il y a même plus longtemps .
    La réponse a toujours été la même ... T'as qu'à faire un module cobol pour lire les enreg, les parser et constituer un fichier à plat qui sera loadé ......
    Je pense que la non-réponse de tes "spécialistes" peut s'expliquer par plusieurs facteurs :
    1. le format CSV n'est pas un format "naturel" dans le monde Mainframe (à la différence du monde de la micro) qui préfere de loin le format fixe "à la COBOL"
    2. l'option DELIMITED sur le LOAD est apparue relativement tard dans la vie de DB2 for z/OS ; pendant longtemps IBM n'a pas offert cette possibilité pour son utilitaire à la différence des fournisseurs tiers


    Maintenant, ça explique mais ça n'excuse pas le comportement de tes "experts". La veille technologique faiit aussi partie du travail d'un spécialiste ...

  8. #8
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    Et je completerai par un truc qui me désespère de la part d'ibm.
    Il n'a pas écrit un DSNTIAUL PARM 'CSV'.

    Je me suis écrit un rexx qui fait à peu pret la même chose; avec bcp d'impasse sur la gestion d'erreur et les formats de colonne.

    et idem pour du xml. Il y a bien purexml; mais c du très lourd.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/02/2011, 23h52
  2. comment importer des données dans une table paradox
    Par pierrot67 dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/08/2007, 18h32
  3. Importation des données d'un *.csv
    Par Baya44 dans le forum Access
    Réponses: 8
    Dernier message: 05/03/2007, 09h33
  4. comment importer des données bo sur excel
    Par Gecl.paris dans le forum Deski
    Réponses: 1
    Dernier message: 12/02/2007, 10h54
  5. Réponses: 4
    Dernier message: 29/08/2006, 14h52

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