Sorting 如何在jcl排序中仅将输入文件的选定列复制到输出文件

Sorting 如何在jcl排序中仅将输入文件的选定列复制到输出文件,sorting,jcl,syncsort,Sorting,Jcl,Syncsort,我试图将输入文件位置(50,10)处的数据复制到输出文件, 但是我有问题。 我的输入文件大小是100;接下来10个字节所需的数据来自第50个位置 我使用了以下选项,但每个选项都会导致异常终止。 我已经采取了输出文件的长度为10只,因为我只需要10个字节。 但是阿本德说输出记录长度=10 SORTIN : RECFM=VB ; LRECL= 100; BLKSIZE= 1000 SORTIN : DSNAME=MNV.TESTS.DF.CPR810S1.EZ2OP

我试图将输入文件位置(50,10)处的数据复制到输出文件, 但是我有问题。 我的输入文件大小是100;接下来10个字节所需的数据来自第50个位置

我使用了以下选项,但每个选项都会导致异常终止。 我已经采取了输出文件的长度为10只,因为我只需要10个字节。 但是阿本德说<代码>输出记录长度=10

SORTIN   : RECFM=VB   ; LRECL=   100; BLKSIZE=  1000 
SORTIN   : DSNAME=MNV.TESTS.DF.CPR810S1.EZ2OP        
OUTREC RECORD LENGTH =     10                         
SORTOUT  RECFM INCOMPATIBLE                          
SORTOUT  : RECFM=FB   ; LRECL=      ; BLKSIZE=    
我使用了以下选项:

OUTREC FIELDS(50,10)              
SORT FIELDS(1,4,CH,A)    
--------didn't work------------

SORT FIELDS=COPY            
OUTREC FIELDS=(115,9,125,10) 
--------didn't work------------

SORT  FIELDS=COPY                        
BUILD=(50,10)                  
--------didn't work------------

INREC FIELDS=(50,10)        
SORT FIELDS=(1,3,CH,A) 
--------didn't work------------

我知道说你很少接受或提供反馈是毫无意义的,你也不是一个很好的选民

出于某种原因,你把它们切断了,但是你发布的所有消息都带有WER前缀和消息编号。如果查阅SyncSORT手册,您会发现所有消息都有文档记录

暂时忘记这一点。您已发布了
SORTOUT RECFM不兼容的
。为什么要继续谈论记录长度?RECFM。RECFM。您已经包含了显示SORTIN的RECFM的消息文本,以及显示SORTOUT的RECFM的消息文本。它们分别是VB和FB。如果你看一下手册中的信息,你会发现你没有做任何明确的事情使它们与众不同

你有两个选择。vt属于或转换。你可以在OUTREC(我相信)和OUTFIL(当然)上使用它们

我不知道您为什么要尝试对文件进行排序,您应该知道,仅仅编写语法是不起作用的

对于排序,默认情况下,输出文件与输入文件相同。可变长度记录必须始终包含RDW,1,4,并且数据本身从位置5开始

如果您需要一个不同RECFM的输出文件,那么您必须明确它(使用CONVERT、FTOV或VTOF)

在创建F记录时,没有RDW,因此BUILD=(50,10)是正确的格式(如果超出四个字节,请记住,对于V记录,数据从位置5开始,因此需要向所有不考虑RDW的开始位置添加四个(如COBOL记录布局)

当从F创建V时,没有RDW,FTOV/CONVERT将创建它


对于V输入和V输出,始终指定(1,4在您的构建声明开始时。

很抱歉长时间缺席,先生。我只来过几次互联网。我肯定会更频繁地访问和参与。我曾尝试使用FTOV,但由于不同的文件类型,我退出了RDW。我创建了两个固定文件,效果很好使用非常简单的选项COPY OUTREC BUILD=(50,9),但我仍然不明白为什么在固定文件中获取VB files列时会出现问题。这太离谱了。@AGENTMATONE我的错误:FTOV固定为变量;VTOF固定为变量。更新。
 OPTION COPY
 OUTFIL VTOF,
        BUILD=(50,10)