微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JCL 将记录合并为一行

如何解决JCL 将记录合并为一行

我有 4 个数据集,每个数据集只有一个包含两位数的记录。例如:

File1: 45
File2: 78
File3: 83
File4: 52

我希望将数据合并到一个新的数据集中 这样:

4578
8352

如何在 Mainframe-JCL 中编写此代码

解决方法

要完成此任务,请将您的四个输入文件连接到 sortin:

//STEP1  EXEC PGM=SORT
//SORTIN DD DSN=File1,DISP=SHR
//       DD DSN=File2,DISP=SHR
//       DD DSN=File3,DISP=SHR
//       DD DSN=File4,DISP=SHR
//SORTOUT DD DSN=Combined
//SYSIN DD *
* Combine each pair of records into a single record
 SORT FIELDS=COPY
* Append a sequence number 00,50,00,...
 INREC BUILD=(1,2,2X,SEQNUM,ZD,START=0,INCR=50)
* Reformat the output record depending on the sequence number
 OUTREC IFTHEN=(WHEN=GROUP,BEGIN=(5,CH,EQ,C'00'),PUSH=(7:1,2)),IFTHEN=(WHEN=GROUP,C'50'),PUSH=(9:1,2))
* Include only the second record of each group (the 50 records)
 OUTFIL FILES=OUT,INCLUDE=(5,BUILD=(7,4)
 END

对于四个输入文件:

文件 1:

45

文件 2:

78

文件 3:

83

文件 4:

52

组合输出文件应该是:

4578
8352

这已经通过 AHLSORT for Windows v14r3 验证,但应该适用于 z/OS 上的 DFSORT 或 SYNCSORT。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。