我可以使用以下方法将未处理的记录保存到SORTOUT(这就是我想要的(:
//SORT EXEC PGM=SORT,PARM='DYNALLOC=(SYSDA,255)'
//SORTMSGS DD SYSOUT=*
//SORTJNF1 DD DSN=FILE1,
// DISP=OLD,DCB=BUFNO=255
//SORTJNF2 DD DSN=FILE2,
// DISP=OLD,DCB=BUFNO=255
//SORTOUT DD DSN=FILEOUT,
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,59),
// SPACE=(CYL,(500,100),RLSE)
//SYSIN DD *
SORT FIELDS=COPY
JOINKEYS FILE=F1,FIELDS=(25,4,A,115,20,A,135,4,A,140,4,A,5,20,A)
JOINKEYS FILE=F2,FIELDS=(5,4,A,9,20,A,29,4,A,33,4,A,37,20,A)
JOIN UNPAIRED,F2,ONLY
但我需要将已配对的记录保存到一个单独的文件中。我尝试了以下语句,但PAIRED记录没有保存在我的PAIRED文件中:
//SORT EXEC PGM=SORT,PARM='DYNALLOC=(SYSDA,255)'
//SORTMSGS DD SYSOUT=*
//SORTJNF1 DD DSN=FILE.F1,
// DISP=OLD,DCB=BUFNO=255
//SORTJNF2 DD DSN=FILE.F2,
// DISP=OLD,DCB=BUFNO=255
//SORTOUT DD DSN=FILE.SORTOUT,
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,59),
// SPACE=(CYL,(500,100),RLSE)
//PAIRED DD DSN=FILE.PAIRED,
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,59),
// SPACE=(CYL,(500,100),RLSE)
//SYSIN DD *
SORT FIELDS=COPY
JOINKEYS FILE=F1,FIELDS=(25,4,A,115,20,A,135,4,A,140,4,A,5,20,A)
JOINKEYS FILE=F2,FIELDS=(5,4,A,9,20,A,29,4,A,33,4,A,37,20,A)
JOIN UNPAIRED,F2,ONLY
OUTFIL FNAMES=SORTOUT
OUTFIL FNAMES=PAIRED,SAVE
编辑1:OP已经提到(在这个答案的评论部分(,"我只想在我的主SORTOUT数据集中保留未处理的记录(仅F2(,在我的PAIRED数据集中保留已配对的记录(只F2("成对记录意味着F1&F2.OP基本上是在寻找RIGHT JOIN。下面提供的SORT声明是根据OP的要求编辑的。请注意,除非指定了具有ONLY
操作数的JOIN
语句,否则需要REFORMAT
语句。
您必须在Syncsort中使用一个方法(在dfsort中称为indicator方法(,才能达到预期效果。请参阅以下SORT声明。
SORT FIELDS=COPY
JOINKEYS FILE=F1,FIELDS=(25,4,A,115,20,A,135,4,A,140,4,A,5,20,A)
JOINKEYS FILE=F2,FIELDS=(5,4,A,9,20,A,29,4,A,33,4,A,37,20,A)
REFORMAT FIELDS=(F1:p,l,F2:p,l,?)
JOIN UNPAIRED,F2
OUTFIL FNAMES=BOTH,INCLUDE=(53,1,CH,EQ,C'B'),BUILD=(Build the columns you need from F1/F2)
OUTFIL FNAMES=UNPAIRED,INCLUDE=(53,1,CH,EQ,C'2'),BUILD=(Build the columns you need from F2)
其中,
p
—位置值表示字段相对于输入记录开头的第一个字节。
l
-长度值表示字段的长度。
观察REFORMAT FIELDS
语句中的?
。
引用Syncsort for z/OS程序员指南:
?
此符号用于在重新格式化的指示重新格式化的记录是配对记录还是未配对的已联接记录。指示灯将设置为三个中的一个不同的可打印值:
"B",如果重新格式化的记录是一对记录
"1",如果重新格式化的记录是创建的未配对记录从F1文件
"2",如果重新格式化的记录是未配对的记录从F2文件创建
更多详细信息:
- 配对和未配对的F1/F2记录(指示器方法(
- Syncsort for z/OS程序员指南
希望这能有所帮助!