jcl排序来划分大型机数据集

我试图将MF PS分成几个数据集。 例如如果我有一个包含600个recs的数据集,我想把它分成6个文件,每个文件有100个记录。是否可以使用JCL排序?     
已邀请:
下面的JCL使用DFSORT将DD SOTRIN均匀地分配到3个输出DATASETS(OUT1,OUT2和OUT3),在6个中添加另外3个输出DD语句并将它们添加到FNAMES语句中。
//SPLIT EXEC PGM=ICEMAN  
//SYSOUT DD SYSOUT=*  
//SORTIN DD DSN=Y897797.INPUT1,DISP=OLD  
//OUT1 DD DSN=Y897797.SPLIT1,DISP=(NEW,CATLG),  
// SPACE=(CYL,(5,5)),UNIT=SYSDA  
//OUT2 DD DSN=Y897797.SPLIT2,DISP=(NEW,CATLG),  
// SPACE=(CYL,(5,5)),UNIT=SYSDA  
//OUT3 DD DSN=Y897797.SPLIT3,DISP=(NEW,CATLG),  
// SPACE=(CYL,(5,5)),UNIT=SYSDA  
//SYSIN DD *  
SORT FIELDS=(21,5,FS,A)  
OUTFIL FNAMES=(OUT1,OUT2,OUT3),SPLIT  
/*  
SORT FIELDS =(21,5,FS,A)是你想要sortint数据集排序的方式,下面是这个字段语句的含义 21字段的开头要排序 5要排序的字段长度 FS浮动标志(签名数字) 升序 DFSORT入门手册 智能DFSORT技巧有许多有用的示例和其他几种方法可以将记录从数据集中分离出来     
SPLIT只是SPLIT,你不能将它与一个数字联系起来。 SPLITBY = n将在指定的每个OUTFIL数据集之间“旋转”n条记录。 SPLIT与SPLITYBY = 1相同。 SPLIT1R = n将只执行一次“旋转”(n个记录将写入第一个OUTFIL数据集,然后n个写入第二个OUTFIL并继续这样直到使用最终的OUTFIL数据集,其中将包含输入的任何剩余记录,否多少钱。 OUTFIL FILES = OUT1不允许。 如果使用STATREC / ENDREC或INCLUDE / OMIT,则可以使用OUTFIL SAVE为未写入任何其他OUTFIL数据集的记录建立文件。     
Deuian的SORT CARD将输入文件平分为输出文件。例如,如果我们有3个输出文件,则总输入记录除以3将是每个输入文件的记录计数。 我们可以根据应该发生的分割来指定计数,如下所示。它隐式地将输入文件拆分为每个输出文件10000条记录。比方说,我们在输入文件中有40000条记录,我们将它们分成3个输出文件,然后我们将在输出文件中获得10000 + 10000/3条记录。   OUTFIL   FNAMES =(OUT1,OUT2,OUT3),SPLIT = 10000 简而言之,当我们对输出记录计数没有任何限制时,我们可以使用它。当我们在拆分时有任何这样的标准时,那么下面的代码有助于......   排序字段=复制   OUTFIL FILES = OUT1,ENDREC = 10000   OUTFIL   FILES = 02,STARTREC = 10001,ENDREC = 20000   OUTFIL   FILES = 03,STARTREC = 20001,ENDREC = 30000 最后,如果我们在输入文件中有超过30000条记录,并且我们没有指定对这些记录做什么,那么SORT就不会为此烦恼。意味着最后一个输出文件只保存10000条记录。 希望我能让你清楚。请进一步回答问题。     

要回复问题请先登录注册