【发布时间】:2019-12-09 13:43:43
【问题描述】:
我需要将多条记录合并为一条记录。要合并(转置)的每个记录块都由数字键标记。分隔符也可以是带有字符串 CHG 的记录。我试过调整大小,但它混合了不同的“块”记录。 “表”的数量可以在 1 到 50 之间。输入文件的 LRECL 是 60 所以,如果我的输入数据如下所示:
1 CHG
1 DATA
1 MOTIVE
1 table1
1 table2
1 table3
2 CHG
2 DATA
2 MOTIVO
2 table1
3 CHG
3 DATA
3 MOTIVE
3 table1
3 table2
3 table3
3 table4
3 table5
输出至少应该是:
1 CHG 1 DATA 1 MOTIVE 1 table1 1 table2 1 table3
2 CHG 2 DATA 2 MOTIVE 2 table1
3 CHG 3 DATA 3 MOTIVE 3 table1 3 table2 3 table3 3 table4 3 table5
理想的输出(如果有帮助,我可以删除记录的第一个字节)
1 CHG DATA MOTIVE table1
1 CHG DATA MOTIVE table2
1 CHG DATA MOTIVE table3
2 CHG DATA MOTIVE table1
3 CHG DATA MOTIVE table1
3 CHG DATA MOTIVE table2
3 CHG DATA MOTIVE table3
3 CHG DATA MOTIVE table4
3 CHG DATA MOTIVE table5
这是我最后一次尝试,但没有一个能正常工作:
//TOOLIN DD *
RESIZE FROM(INDD) TO(OUTDD1) TOLEN(600) USING(CTL1)
//TOOLIN DD *
RESIZE FROM(INDD) TO(OUTDD1) TOLEN(600) USING(CTL1)
//CTL1CNTL DD *
INREC BUILD=(1,50)
OUTFIL FNAMES=OUTDD1,OVERLAY=(1:1,600)
/*
【问题讨论】:
-
无法使用 JCL 完成,因为 JCL 不操作数据。您似乎正在使用 DFSORT 或 SYNCSORT,因此标记应该是其中适当的一个。