Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2011, 19h37   #1
Invité de passage
 
Inscription : décembre 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 12
Points : 3
Points : 3
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
gritchefr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 23h21   #2
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
Avec le LOAD, il y a des possibilités.

recherche "delimited" dans la doc, tu tomberas sur loaded delimited files
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 07h35   #3
Nouveau Membre du Club
 
Homme jean-christophe toustou
Analyste d'exploitation
Inscription : décembre 2007
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme jean-christophe toustou
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Industrie

Informations forums :
Inscription : décembre 2007
Messages : 27
Points : 25
Points : 25
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 :
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 .........
Macmini95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 09h29   #4
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
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 :
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
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 12h38   #5
Nouveau Membre du Club
 
Homme jean-christophe toustou
Analyste d'exploitation
Inscription : décembre 2007
Messages : 27
Détails du profil
Informations personnelles :
Nom : Homme jean-christophe toustou
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Analyste d'exploitation
Secteur : Industrie

Informations forums :
Inscription : décembre 2007
Messages : 27
Points : 25
Points : 25
Bernard je ne connaissais pas cette syntaxe mais il vrai que cela à l'air nettement plus pratique Merci pour la découverte
Macmini95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 08h49   #6
Invité de passage
 
Inscription : décembre 2008
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2008
Messages : 12
Points : 3
Points : 3
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 :
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..
gritchefr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 17h12   #7
Membre Expert

 
Homme François Durand
Spécialiste Delivery Mainframe IBM
Inscription : octobre 2005
Messages : 1 096
Détails du profil
Informations personnelles :
Nom : Homme François Durand
Âge : 53
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Spécialiste Delivery Mainframe IBM
Secteur : Finance

Informations forums :
Inscription : octobre 2005
Messages : 1 096
Points : 1 704
Points : 1 704
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 ...
Luc Orient est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2011, 21h19   #8
Membre chevronné
 
Avatar de bernard59139
 
Administrateur de base de données
Inscription : octobre 2006
Messages : 503
Détails du profil
Informations personnelles :
Localisation : France

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

Informations forums :
Inscription : octobre 2006
Messages : 503
Points : 688
Points : 688
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.
bernard59139 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h43.


 
 
 
 
Partenaires

Hébergement Web