使用Joinkeys对无与伦比的记录进行排序



我有两个gdg文件(-1& 0版本(。使用这两个文件需要生成一个将具有插入记录(不在-1版中但在 0版本中的记录(的平面文件,删除记录(记录在-1中,但不在 0版本中(和更新记录(两个版本中的记录,但 0版本可能在某些字段中具有更改(。如何获取这些更新记录?我可以使用Joinkeys做到这一点,如果是,如何?

注意:更新可以从第1列到文件的最后一列(GDG的 0版本(

这是一个简单的联接:

  OPTION COPY 
  JOINKEYS F1=INA,FIELDS=(4,80),SORTED,NOSEQCK 
  JOINKEYS F2=INB,FIELDS=(4,80),SORTED,NOSEQCK 
  JOIN UNPAIRED 
  REFORMAT FIELDS=(F1:1,227,F2:1,227,?) 

OPTION COPY用于主要任务,这是生成加入文件后运行的位。SORT FIELDS=COPY等效于选项复制。

假设您的数据已经按键顺序。如果没有,请删除分类的鼻QCK,但请记住,您可能会通过相同的键相对于插入和删除在文件上的相同位置。

JOIN UPAIRED为您提供匹配和两种类型的不匹配。JOIN UNPAIRED,F1,F2等效。

REFORMAT语句定义了连接文件上的记录。您需要两个记录中的所有数据,并且想知道是否有匹配项,如果没有匹配,则哪个输入文件具有记录。那就是问题标记(?(。它将包含" b"(在两个文件上(,'1'(在F1上或第一个物理上存在的Joinkeys,仅(或" 2"(仅在其他Joinkeys文件上(。

然后您需要输出数据。我假设您需要在单独的位置上数据:

  OUTFIL FNAMES=INSERT,
         INCLUDE=(455,1,CH,EQ,C'1'),
         BUILD=(1,227)
  OUTFIL FNAMES=DELETE,
         INCLUDE=(455,1,CH,EQ,C'2'),
         BUILD=(228,227)
  OUTFIL FNAMES=CHANGE,
         INCLUDE=(455,1,CH,EQ,C'B',
                 AND,
                  1,227,CH,NE,228,227,CH),
         BUILD=(1,454)
  OUTFIL FNAMES=UNCHNGE,
         SAVE,
         BUILD=(1,227)

INCLUDE=(或OMIT=(包括或省略" Outfil组"中的数据。同时使用Outfils"运行"(例如,在同一记录中依次将每个记录显示给每个记录,然后是下一个记录等(。

fnames为您提供了放入JCl的ddname。

为了更改,包括第一个记录(已知由于" B"的测试而匹配(不等于第二个记录。目前尚不清楚您在这里想要什么输出。当前,这些输出是F2附加到F1的,并且整个(大小两倍(编写的记录。您也可以在" Pairs"(build =(1,227,/,228,227(中写入记录(或仅一个或另一个记录。

保存是一件说:"如果此记录尚未出现在任何Outfil上,请在此处输出。即使您不希望在最终代码中进行测试也很有用。

<</p>

相关内容

  • 没有找到相关文章

最新更新