SORT 例子1

2010-10-31 22:53

作业控制语句:
JOB:       指定作业参数
EXEC:       指定作业步参数
SYSOUT DD: 定义输出信息的顺序数据集
SORTIN DD: 定义输入数据集
WORTWKdd DD:   定义一系列的排序工作数据集
SORTOUT DD: 定义排序完的数据的输出数据集
SYSIN DD:     定义控制信息

控制选项:
SORT: 指定对数据集进行排序操作
MERGE:   指定对数据集进行合并操作
COPY: 指定对数据集进行拷贝操作
FIELDS: 指定排序键值的信息,格式为
FIELDS=(起始位置,长度,升降序[,起始位置,长度,升降序]),FORMAT=数据类型
      (起始位置,长度,数据格式,升降序[,起始位置,长度,数据格式,升降序])
其中位置和长度都是以字节为单位,顺序可选的有 A:升序,D:降序,E:适用用户出口例程序;
FORMAT=指定键字的类型,可选项有 CH:字符,PD:压缩十进制,BI:二进制,AC:ASCII码型

****** ***************************** Top of Data ******************************
000001 //JOBCARD       
000004 //SORT EXEC PGM=SORT                                                
000005 //SORTIN DD DSN=your.dataset.TESTFA,DISP=SHR                     
000006 //       DD DSN=your.dataset.TESTFB,DISP=SHR                     
000007 //SORTOUT   DD DSN=your.dataset.TESTFC,DISP=SHR                     
000008 //SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(5,5))                           
000009 //SORTWK02 DD UNIT=SYSDA,SPACE=(CYL,(5,5))                           
000010 //SYSOUT DD SYSOUT=*                                                 
000011 //SYSIN DD *                                                      
000012   SORT FIELDS=(1,7,CH,A)                                             
000013   OMIT COND=(11,1,CH,EQ,C'A',OR,11,1,CH,EQ,C'B')                     
000014   OUTREC FIELDS=(1,9,C' ',11,6,C' END')                              
000015 /*                                                                  
****** **************************** Bottom of Data ****************************

说明:
000012   SORT FIELDS=(1,7,CH,A)                         从1位到第7位升序排列,降序是D                                          
000013   OMIT COND=(11,1,CH,EQ,C'A',OR,11,1,CH,EQ,C'B') OMIT忽略掉11位是'A'和'B'的记录                     
000014   OUTREC FIELDS=(1,9,C' ',11,6,C' END')          重新组合新得输出数据,取1到9位,第10位替换为space,再取11位到16位,17位开始用' END'替换

INPUT:
your.dataset.TESTFA

****** ***************************** Top of Data ******************************
000001 EEEEEEEEE 860520                                                       
000002 AAAAAAAAA 981110                                                       
000003 CCCCCCCCC 081010                                                       
000004 BBBBBBBBB 961110                                                       
000005 DDDDDDDDD 020202                                                       
000006 FFFFDDDDD 001111                                                       
****** **************************** Bottom of Data ****************************

your.dataset.TESTFB

****** ***************************** Top of Data ******************************
000001 MAAAAAAAA AAAAAAAAA AAAAAAAAA AAAAAAAAAA                               
000002 UBBBBBBBB ABBBBBBBB BBBBBBBBB BBBBBBBBBB                               
000003 SDCCCCCCC BCCCCCCCC CCCCCCCCC CCCCCCCCCC                               
000004 EDDDDDDDD ADDDDDDDD DDDDDDDDD DDDDDDDDDD                               
000005 ZEEEEEEEE EEEEEEEEE EEEEEEEEE EEEEEEEEEE                               
000006 BFFFFFFFF FFFFFFFFF FFFFFFFFF FFFFFFFFFF                               
****** **************************** Bottom of Data ****************************

结果:

****** ***************************** Top of Data ******************************
000001 AAAAAAAAA 981110 END                                                
000002 BBBBBBBBB 961110 END                                                
000003 BFFFFFFFF FFFFFF END                                                
000004 CCCCCCCCC 081010 END                                                
000005 DDDDDDDDD 020202 END                                                
000006 EEEEEEEEE 860520 END                                                
000007 FFFFDDDDD 001111 END                                                
000008 ZEEEEEEEE EEEEEE END                                                
****** **************************** Bottom of Data ****************************

原文地址:https://www.cnblogs.com/kakaisgood/p/13206884.html