【发布时间】:2021-05-25 16:56:48
【问题描述】:
您好,我正在尝试从 2 个文件中查找匹配和不匹配的记录,一个文件是带有 181 LRECL 的错误文件,第二个文件 F2 是具有相同 181 LRECL 的有效记录文件。
示例错误文件
12345678901
11111111111
11111111111
22222222222
有效文件有
33333333333
11111111111
11111111111
44444444444
我实现了左外连接
//F1 -> ERROR FILE
//F2 -> VALID FILE
//SYSOUT DD SYSOUT=*
//SYSIN DD *
JOINKEYS F1=MAIN,FIELDS=(43,11,A)
JOINKEYS F2=LOOKUP,FIELDS=(10,11,A)
JOIN UNPAIRED,F2 ONLY
SORT FIEDLS=COPY
/*
所以使用它我能够获得 sysout 的错误文件中不存在的有效记录
系统输出:
33333333333
44444444444
但我不想丢失两个文件中的匹配记录,并希望将两个文件中的匹配记录写入第二个输出文件。
我尝试实现
FULL OUTER Join,但无法得到结果
//F1 -> Error File
//F2 -> Valid File
//MATCH DD DSN=MYDATA.URMI.SAMPLE.MATCH,DISP=OLD
//NOMATCH1 DD DSN=MYDATA.URMI.SAMPLE.NOMATCH1,DISP=OLD
//NOMATCH2 DD DSN=MYDATA.URMI.SAMPLE.NOMATCH2,DISP=OLD
//SYSOUT DD SYSOUT=*
//SYSIN DD *
JOINKEYS F1=MAIN,FIELDS=(43,11,A)
JOINKEYS F2=LOOKUP,FIELDS=(10,11,A)
JOIN UNPAIRED,F1,F2
REFORMAT FIELDS=(?,F1:1,181,F2:1,181)
OPTION COPY
OUTFIL FNAMES=MATCH,INCLUDE=(1,1,CH,EQ,C'B'),BUILD=(1:2,181)
OUTFIL FNAMES=NOMATCH1,INCLUDE=(1,1,CH,EQ,C'1'),BUILD=(1:2,181)
OUTFIL FNAMES=NOMATCH2,INCLUDE=(1,1,CH,EQ,C'2'),BUILD=(1:2,181)
/*
【问题讨论】:
-
好的,已删除,谢谢