|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() |
Bonjour à tous,
J'aimerai savoir s'il existe un moyen simple de convertir un fichier VSAM (avec les champs EBCDIC...) en un fichier txt ou csv qu'on puisse lire et exploiter. On m'a parlé de faire un transfert ftp sur une autre machine et spécifiant un encodage en ASCII. Mais est-une bonne piste? comment je peux faire ca exactement? et est-ce que cela garanti la qualité des données et surtout est-ce qu'un tel encodoge permet de "decompresser" les formats type COM-3.. Merci d'avance |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 835 ![]() |
Un petit programme en COBOL (ou autre) ? Ça n'est quand même pas le bout du monde...
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 477 ![]() |
Bonjour
La question aurait du être posée dans la partie Z/os du forum, mais bon. FTP ne peut pas travailler avec des fichiers VSAM. Pour ton cas, tu devras:
|
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() |
Merci Bernard
aurais-tu un exemple de comment on doit un programme COBOL qui convertirai un VSAM en txt? |
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 835 ![]() |
Bonsoir jam92400,
Dans une optique COBOL : Votre fichier est-il un KSDS, un ESDS, un RRDS ?
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() |
J'en ai aucune idée
c'est important? |
|
|
00
|
|
|
#7 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 835 ![]() |
Bonsoir,
Ça n’est pas fondamental, mais il y a quelques différences dans la partie ENVIRONMENT DIVISION. Je suppose que vous lisez le fichier séquentiellement, sinon pour un KSDS ça peut se compliquer. La clause SELECT du paragraphe FILE-CONTROL diffère selon que le fichier à lire est un ESDS ou un KSDS (je ne parle pas des RRDS). Exemple d’un fichier ESDS (ce qui est facultatif est entre crochets) : Code :
Code :
OPEN INPUT mon_fichierPar ailleurs, si le fichier est un KSDS vous pouvez utiliser l’instruction START pour commencer la lecture ailleurs qu’en début de fichier. Ci-joint les références des PDF COBOL, notamment le Language Reference et le Programming Guide : http://www-01.ibm.com/software/awdto...os390/library/ Si vous préférez utiliser DFSORT, je vous renvoie à l’Application Programming Guide : http://www-03.ibm.com/systems/z/os/zos/bkserv/r11pdf/
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
||||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 071 ![]() |
Je crois que "assignement name" (ce qui suit le mot clé ASSIGN) a une particularité pour un fichier VSAM ESDS et ceci pour pouvoir le distinguer d'un fichier QSAM "classique".
cf : ASSIGN clause |
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 835 ![]() |
Bien vu, Oeil de Lynx. Effectivement, la constante "AS-" doit précéder le nom du fichier dans le cas d'un ESDS.
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
|
|
00
|
|
|
#10 | |||||||||||
|
Membre expérimenté
![]() Inscription : octobre 2007 Messages : 449 ![]() |
Citation:
Citation:
Il y a certainement une COPY COBOL qui décrit le fichier qu'il te faut obtenir pour formater tes données en étendu. Pour ça SORT ou ICETOOL font l'affaire et il y a assez de spécialistes sur ce forum pour t'aider au besoin. D'autant que quand on a ce genre de demande d'externalisation de fichier, on peut éventuellement s'attendre à ce que d'autres suivent, il est donc préférable de s'habituer aux utilitaires standards Citation:
RRDS devient fort rare, mais c'est du fixe Si c'est un KSDS, savoir où se trouve la clé, la longueur maxi d'un enregistrement et connaître le nombre d'enregistrements est utile. C'est un LISTCAT qui donne ça. Exemple par JCL (mais on peut aussi bien le passer sous TSO : Code :
Code :
- INDEXED : C'est un KSDS. Il contient 8849 enregistrements pour juste une insertion. Donc le Freespace n'est pratiquement pas utilisé, donc un QSAM au 3/4 de la taille de la composante DATA du VSAM suffira. (On A 4 Extent d'un Cylindre allouées, le QSAM sorti du REPRO ne prendra pas plus de 45 pistes) - MAXLRECL 220 : c'est la taille maxi d'un enregistrement - AVGLRECL 220 : c'est la taille MOYENNE, Il peut très bien contenir des enregistrements de taille inférieure. D'autant que l'on met souvent un enregistrement 'amorce' de LRECL 80 dans un nouveau KSDS crée (pas d'insertion possible par programme si le fichier est vide) - KEYLEN, RKP : la clé fait 51 caractères, sa position relative à 0 sur l'enregistrement est 3. Elle est donc en colonne 4. Tu peux tenter un REPRO sur un FB de LRECL 220 pour ce cas (BLKSIZE 0) mais tu aura des erreurs pour tous les enregistrements de taille inférieure. Si c'est juste l'enregistrement amorce, le REPRO le laissera tomber Sinon, tu crée un VB avec un LRECL au moins égal au MAXLRECL + 4 Code :
Code :
A partir de là tu as un QSAM FB simple que tu pourras reformater ou trier comme tu veux avant de fait le transfert. |
|||||||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com