对记录进行重复数据删除,而无需在具有已排序数据的大型机顺序数据集中进行排序

这是有关对已排序的大型机数据集进行重复数据删除而不重新排序的查询。

输入顺序数据集具有以下结构。前4个字节中的'KEYn'代表键,每行的其余部分代表记录的其余数据。有些记录中重复相同的键,尽管每个记录中的剩余数据都不同。记录已在“ KEYn”上排序。

KEY1aaaaaa

KEY1bbbbbb

KEY2cccccc

KEY3xxxxxx

KEY3yyyyyy

KEY3zzzzzz

KEY3wwwwww

KEY4uuuuuu

KEY5hhhhhh

KEY5ffffff

我的要求是获取每个键的第一条记录,并删除其余的“重复项”。因此上述输入的输出文件应如下所示:

KEY1aaaaaa

KEY2cccccc

KEY3xxxxxx

KEY4uuuuuu

KEY5hhhhhh

由于已经对数据进行了排序,因此我不希望将SORT实用程序与SUM FIELDS = NONE或ICETOOL一起使用SELECT-FIRST操作数,因为这两种方法实际上都将最终对重复数据删除密钥(KEYn )。另外,我所指的实际数据集非常庞大(16亿条记录,AVGRLEN 900 VB),并且一项工作实际上耗尽了工作空间,试图一次性对其进行排序。

我的查询是:在基于JCL的实用程序中,是否有任何选项可以执行此重复数据删除操作而无需诉诸和使用排序工作空间?我试图避免编写COBOL / Assembler程序来做到这一点。

dd56100 回答:对记录进行重复数据删除,而无需在具有已排序数据的大型机顺序数据集中进行排序

尝试未经测试的

OPTION COPY                                                         
INREC BUILD=(1,4,SEQNUM,3,ZD,RESTART=(5,4),5)    
OUTFIL INCLUDE=(5,EQ,1),BUILD=(1,8)
本文链接:https://www.f2er.com/2917235.html

大家都在问