如何解决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 举报,一经查实,本站将立刻删除。