2010-09-28 11 views
1

J'essaie de copier certains membres d'un PDS à un autre. Supposons que j'ai 500 membres dans un PDS. J'essaie de déplacer les 100 premiers au PDS, les 100 suivants au PDS, et ainsi de suite. Les membres copiés dans un autre PDS doivent également être supprimés du PDS source. Est-il possible de le faire en utilisant JCL?JCL pour copier certains membres d'un PDS à un autre

Je regarde IEBGENER mais là j'ai trouvé que nous pouvons directement copier les membres en spécifiant des noms.

+0

Wow - J'ai entendu parler de JCL depuis des années. Je voudrais vraiment voir une réponse à cela pour l'amour de la nostalgie –

+0

EST-ce une question de devoirs? Quel besoin d'affaires est là pour diviser le fichier d'entrée par chaque 100 membres? –

Répondre

1

Vous pouvez le faire en plusieurs étapes. En tant que contour:

  • piège la sortie de 'entrée-pds-name' LISTDS MEMBRES dans un ensemble de données
  • manipuler les Membres avec ICETOOL pour produire des commandes REPRO IDCAMS et DELETE
  • exécuter le IDCAMS REPRO
  • exécuter le IDCAMS SUPPRIMER

Mise en place ICETOOL pour sélectionner et formater les commandes dans liste des membres REPRO/DELETE est, de loin, l'étape la plus difficile. En fait, vous devrez peut-être enchaîner quelques étapes d'ICETOOL pour obtenir tous les droits. Cela peut prendre beaucoup de temps pour comprendre, sauf si vous avez beaucoup d'expérience en utilisant ICETOOL. Ici est un lien vers le IBM DFSORT Programming Guide (ICETOOL est juste un frontal BATCH à DFSORT) pour vous donner une idée de ce que vous sont contre.

Je suggère une approche alternative. Essayez d'écrire une procédure REXX pour remplacer l'étape ICETOOL . Le piégeage de la sortie LISTDS et sa mise en forme dans les commandes IDCAMS REPRO/DELETE appropriées pour serait un processus beaucoup plus simple. REXX est disponible sur à peu près tous les ordinateurs centraux IBM, donc l'accès ne devrait pas poser de problème.

Veuillez fournir un peu plus de détails sur vos conventions de dénomination de jeu de données si vous avez besoin de plus d'aide avec ceci. Particulièrement, les noms de PDS de sortie. Je n'ai pas besoin de noms, je ne veux pas qu'ils soient construits. Par exemple, ils ne ressemble à quelque chose comme ceci:

  • HLQ.SOMENAME.FILE001
  • HLQ.SOMENAME.FILE002
  • HLQ.SOMENAME.FILE003

où les 100 premiers membres sont copiés dans FILE001, les 100 suivants à FILE002 etcetera. Cela peut faire une différence dans la façon dont vous pouvez généraliser l'utilitaire de copie de fichiers. Aussi, continuez-vous à copier en blocs de 100 jusqu'à ce que le PDS d'entrée soit épuisé ou y a-t-il une limite d'arrêt?

0

Si vous avez un produit appelé « SAS », alors il sera très facile de copier des éléments choisis dans un PDS à d'autres

DATA PDS;            
FILENAME OLD 'A*.B*.C*' DISP=SHR;    
FILENAME NEW 'A*.B*.D*' DISP=OLD; 
PROC PDSCOPY INDD=OLD OUTDD=NEW ALIASMATCH=BOTH   
SHAREINPUT;          
SELECT AJ:;           
RUN;             

Note:. Tous les membres commençant par AJ copieront de l'ancien au nouveau jeu de données.

+0

Cela peut fonctionner, mais cette réponse ne répond pas aux devoirs de l'OP, heu, je veux dire, les besoins réels de l'entreprise. –

Questions connexes