我正在使用SORT处理输入文件并提取与三个不同条件匹配的记录。标准在控制语句中列出。我正在寻找与文本GROUND OPERATIONS
,TECHNICAL OPERATI
和AIRPORT TRANSFERS
匹配的字段。我希望将与每个条件匹配的输入中的记录写入相应的输出文件。输出文件的DD分别为SORTOF01
,SORTOF02
和SORTOF03
。
我可以在输入文件中看到符合我的条件的记录,但是执行时SORT完成,但是未选择任何记录。我缺少了一些东西,但我不知道它是什么。下面提供了SORT的JCL和控制语句。
//PROB3 EXEC PGM=SORT
//SORTIN DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON,DISP=SHR
//SORTOF01 DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLN01,
// DISP=(NEW,CATLG,DELETE),
// LIKE=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON
//SORTOF02 DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLN02,
// DISP=(NEW,CATLG,DELETE),
// LIKE=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON
//SORTOF03 DD DSN=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLN03,
// DISP=(NEW,CATLG,DELETE),
// LIKE=XXX.T.KR0Z1N99.RU02.FTPGEN.THOTLNON
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
INCLUDE COND=(93,3,CH,EQ,C'YES')
OUTFIL FILES=01,INCLUDE=(73,20,CH,EQ,C'GROUND OPERATIONS')
OUTFIL FILES=02,INCLUDE=(73,20,CH,EQ,C'TECHNICAL OPERATI')
OUTFIL FILES=03,INCLUDE=(73,20,CH,EQ,C'AIRPORT TRANSFERS')
答案 0 :(得分:2)
尝试将长度从20
更改为17
,如下所示
//SYSIN DD *
SORT FIELDS=COPY
INCLUDE COND=(93,3,CH,EQ,C'YES')
OUTFIL FILES=01,INCLUDE=(73,17,CH,EQ,C'GROUND OPERATIONS')
OUTFIL FILES=02,INCLUDE=(73,17,CH,EQ,C'TECHNICAL OPERATI')
OUTFIL FILES=03,INCLUDE=(73,17,CH,EQ,C'AIRPORT TRANSFERS')
将20个字节与17个字节进行比较可能是错误的
排序时遇到问题,始终检查记录格式,如果RECFM
是 VB ,则需要add 4
移至所有位置