|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Bonjour,
Je souhaite, en jcl, comparer deux fichiers, sur les 5ères positions, et mettre les données non communes, dans un troisième fichier : exemple de jcl : Code :
Le problème est que le système copie écrase les données de nomfic2, en les remplaçant par celles de nomfic1, et fic3 est vide. Que faut-il mettre comme instruction, dans TOOLIN, pour avoir le résultat attendu ? Merci d'avance. Twisty. |
||
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() François DurandSpécialiste Delivery Mainframe IBM Inscription : octobre 2005 Messages : 1 096 ![]() |
Une proposition ... à adapter ...
Code :
|
||
|
|
10
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Bonjour,
Merci pour cette réponse, mais j'ai un code ABENDED S000 U0005, avec des fichiers existants (F1=> nomfic1, disp=shr, F2=>nomfic2,disp=shr). En fait, le système ne reconnait pas les instructions JOINKEYS. Serait-ce un problème de version d'OS ou de jcl ? Twisty. |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 502 ![]() |
Bonjour
C'est un problème de version de logiciel de tri. JOINKEY date de Novembre 2009 pour DFSORT. SYNCSORT a suivi de peu. ==> votre logiciel de tri n'a pas été maj depuis plus d'un an. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Dans ce cas ,avant novembre 2009, qu'elle est l'instruction qui existait avant JOINKEYS ?
Sinon, la mise à jour du logiciel de tri ne se fera pas (économie oblige en temps de crise). Twisty |
|
|
00
|
|
|
#6 | ||
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 502 ![]() |
Avec ICETOOL, tu peux essayer ceci:
Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
SPLICE implémenté avant JOINKEYS devrait fonctionner, dans ton cas il faudrait faire quelque chose qui ressemble à ça :
Code :
.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
||
|
10
|
|
|
#8 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
En fait, la solution de bernard59139 donne les enregistrements, en commun, et les écrit deux fois, dans le fichier de sortie. Or, je cherche à avoir les enregistrements, qui ne sont justement pas en commun, dans les deux fichiers.
Pouvez-vous m'aider ? Merci d'avance. |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Le SPLICE que j'ai indiqué devrait répondre à ton besoin.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Peux-tu expliquer ce que tu fais, dans cette instruction ?
SPLICE FROM(TMP) TO(OUT) ON(1,5,CH) WITH(80,1) KEEPNODUPS - USING(WRK3) Et, qu'elles sont les longueurs des deux fichiers ? De plus, je ne comprends pas comment arrive-ton à des enregistrements, avec, en 80, "BA" ? Ce que je comprends, c'est que tu tri les deux fichiers avec (1,5,CH) et (80,1), en enlevant les doubles. Mais, si la longueur des fichiers est 80, peut-on écrire, dans le fichier, après 80 ? En fait, peux-tu renter dans les détails, car je suis vraiment perdu, dans ce jcl? Merci d'avance. |
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Réponse détaillée ce soir.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
|
00
|
|
|
#12 | ||||||||||||||||
|
Membre chevronné
![]() Guillaume VENTREz/OS Technical Leader Inscription : décembre 2006 Messages : 514 ![]() |
Explications :
Je suis parti du principe que tes fichiers sont avec un LRECL < 80. Dans l'ordre ci-après, Code :
Code :
Cette fois on ajoute 'BB' en poition 80 : Code :
Passons au SPLICE, il permet de fusionner tous les enregistrements du fichier TMP de clé identique déclarée par ON et de conserver les champs déclarés en WIDTH des enregs trouvés après le premier doublon. KEEPNODUPS conserve les enregistrements non fusionnés (= sans tuple). Code :
Code :
Code :
Ce sont ces derniers que l'on supprime (OMIT) en utilisant la sysin WRK3CNTL et en veillant à reconstruire le fichier (BUILD) avec uniquement les 80 premiers caractères : Code :
Citation:
Citation:
.
__________________
★★ Documentation Mainframe par Guillaume Ventre ★★ |
||||||||||||||||
|
00
|
|
|
#13 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 502 ![]() |
Bonjour
Toutes les manipulations possibles avec le tri sont disponibles dans la doc. Avec toutes les explications. Beaucoup de doc mainframe A+ |
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 44 ![]() |
Merci pour ce détail, mais je suis obligé d'augmenter la taille du fichier temporaire, car j'ai des données, jusqu'en colonne 80. Et, dans ce cas, l'overlay du premier fichier temporaire (wrk1cntl) ne se fait pas ou est écrasé par le deuxième fichier temporaire (wrk2cntl). Donc, je n'obtiens pas le résultat souhaité.
Pourriez-vous me communiquer les instructions à ajouter, en cas d'augmentation de la longueur du fichier temporaire ? Merci d'avance, Twisty |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com