Z/OS Syncsort:省略无分类的重复



无法使用手册如何使用Syncsort来解决此问题(我们找到了使用DFSort解决方案,这无济于事)。由于程序错误(无法及时解决,您知道:程序员,测试,质量检查,部署...),我们在文件(FB/LRECL 250)中获得了重复的记录,然后在其中

  • 存在标题线
  • 随后的重复数据线,必须省略,但一个唯一的
  • 不得对数据行进行排序(由于某些记录的逻辑关系的强制性)
  • 预告片包括数据线计数。

由于其大小(> 2 mio记录),无法手动编辑该文件。

示例流动:

HEADER xxxx
cccc
bbbb 123
bbbb 123
bbbb 123
dddd
aaaa 123
aaaa 123
aaaa
TRAILER COUNT: 8

预期的超档:

HEADER xxxx
cccc
bbbb 123         
dddd
aaaa 123
aaaa
TRAILER COUNT: 5

因此,根本没有排序外档,省略的记录

bbbb 123         (omitted)
bbbb 123         (omitted)
aaaa 123         (omitted)

根本不需要,可能直接进入涅rv。

(我什至会对省略标头/拖车的解决方案感到满意,因为我可以轻松地在随后的作业中手动生成的线条。)

感谢您的帮助!

我能够使用两个同步步骤实现您的预期结果。

步骤1:

INREC FIELDS=(1:SEQNUM,4,ZD,5:1,8)
SORT FIELDS=(5,8,CH,A),SKIPREC=1  
SUM FIELDS=NONE

使用 INREC ,我已经在前4个字节中附加了序列号,然后是实际数据记录。然后,我将文件对第8个字节作为密钥进行了排序。使用 skiprec 跳过标题记录。

步骤2:

SORT FIELDS=(1,4,CH,A)                                              
OUTFIL FNAMES=SORTOF01,REMOVECC,                                    
OUTREC=(1:5,8,80:X),TRAILER1=('TRAILER COUNT:',COUNT=(M11,LENGTH=8))

在步骤2中,步骤1的输出文件被读取为输入。正如您所期望的那样,数据线未被排序,我将输入数字编制为序列号作为密钥。使用 OUTEC ,我不得不在最终输出文件中编写序列编号。我已经使用 trialer1 在最后一次打印记录计数。

希望这会有所帮助。请让我知道您是否有更有效地工作的替代方案。

请参阅我的下面排序卡。它是为您的示例数据构建的。

//SORTOUT DD SYSOUT=*                                                 
//SYSIN DD *                                                          
 OPTION COPY                                                          
 INREC FIELDS=(1,50,SEQNUM,7,ZD,RESTART=(1,8))                        
 OUTFIL REMOVECC,OMIT=(51,7,ZD,GT,01,|,1,7,CH,EQ,C'TRAILER'),         
        OUTREC=(1,50),TRAILER1=(C'TRAILER COUNT:',COUNT-1=(M11,LENGTH=8))
/*             

相关内容

  • 没有找到相关文章

最新更新