JCL中SORT的应⽤
JCL code
  ***************************** Top of Data ******************************
  //SORTTEST JOB 'DDS1602',MSGCLASS=S,TIME=1440,NOTIFY=&SYSUID
  //STEP01 EXEC PGM=SORT
  //SYSOUT DD SYSOUT=*,OUTLIM=5000
  //SYSPRINT DD SYSOUT=*,OUTLIM=5000
  //SYSTSPRT DD SYSOUT=*,OUTLIM=5000
  //SYSUDUMP DD DUMMY
  //PLIDUMP DD DUMMY
  //SORTWK01 DD UNIT=SYSDA,SPACE=(TRK,(30),,CONTIG)
  //SORTWK02 DD UNIT=(SYSDA,SEP=SORTWK01),SPACE=(TRK,(30),,CONTIG)
  //SORTWK03 DD UNIT=(SYSDA,SEP=(SORTWK01,SORTWK02)),
  // SPACE=(TRK,(30),,CONTIG)
  //SORTIN DD DSN=DDS1602.XUWEN.DATA,DISP=SHR
  //SORTOUT DD DSN=DDS1602.XUWEN.DATAOUT,DISP=(MOD,CATLG,DELETE),
  // UNIT=SYSDA,SPACE=(TRK,(2,1),RLSE),
  // DCB=(RECFM=FB,LRECL=23,DSORG=PS)
  //SYSIN DD *
  SORT FIELDS=(10,10,CH,A),SKIPREC=1
  OMIT COND=(24,1,CH,EQ,C'F')
  SUM FIELDS=(20,04,ZD)
  OUTREC FIELDS=(10,10,20,4,C'END')
  /*
  //*SKIPREC=1 SKIP THE TOP 1 RECORD
  //*STOPAFT=1 JUST SELECT THE TOP 1 RECORD
  //*OMIT COND=(X,X,PD,LT,0) OMIT THE RECORD WHICH SATISFY THE CONDITION   //*
  **************************** Bottom of Data ****************************
  输⼊数据:
  ----+----1----+----2----+----3----+
  Number---Name------Qty-Flag
  Number1 Xuwen 1000S
  Number2 Tony Lv 2000S
  Number3 Hanbao Liu3000F
  Number4 Xuwen 0111S
  Number5 Tony Lv 0222F
  Number6 Hanbao Liu0333S
  输出:
  ----+----1----+----2---
  Hanbao Liu0333END
  Tony Lv 2000END
  Xuwen 1111END
  作业控制语句:
  JOB: 指定作业参数
  EXEC: 指定作业步参数
  SYSOUT DD: 定义输出信息的顺序数据集
  SORTIN DD: 定义输⼊数据集
  WORTWKdd DD: 定义⼀系列的排序⼯作数据集
  SORTOUT DD: 定义排序完的数据的输出数据集
  SYSIN DD: 定义控制信息
  控制选项:
  SORT: 指定对数据集进⾏排序操作
  MERGE: 指定对数据集进⾏合并操作
  COPY: 指定对数据集进⾏拷贝操作
  FIELDS: 指定排序键值的信息,格式为
  FIELDS=(起始位置,长度,升降序[,起始位置,长度,升降序]),FORMAT=数据类型
  (起始位置,长度,数据格式,升降序[,起始位置,长度,数据格式,升降序])
sort out 造句
  其中位置和长度都是以字节为单位,顺序可选的有 A:升序,D:降序,E:适⽤⽤户出⼝例程序;
  FORMAT=指定键字的类型,可选项有 CH:字符,PD:压缩⼗进制,BI:⼆进制,AC:ASCII码型
  说明:
  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'替换

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。