我可以使用以下方法将UNPAIRED记录保存到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记录没有保存在我的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
答案 0 :(得分:1)
编辑1: OP在此答案的注释部分中提到:“我只想将UNPAIRED记录(仅F2)保留在我的主SORTOUT数据集中,而PAIRED记录(我的PAIRED数据集中)。”配对记录表示F1和F2。 OP基本上是在寻找RIGHT JOIN。下面提供的SORT语句根据OP的要求进行编辑。请注意,除非指定了带有REFORMAT
操作数的JOIN
语句,否则必须使用ONLY
语句。
您必须使用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文件创建
更多详细信息:
希望这会有所帮助!