加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

JCL DFSORT – Include or Omit Records

(2011-08-09 22:08:48)
标签:

mainframe

it

分类: JCL

   我们经常要为某些应用需要从文件中选择一些记录。这一章节我们主要关注怎样用includeomit语句在输入文件中选择我们想要的记录,对其进行sort, merge到输出文件中。

    sort, mergecopy文件之前用Include or Omit语句移除不需要的记录,可以增加sort, merge, copy的速度。

    如果你想从输入文件中挑选记录,可以通过以下语句实现:

·         Using an INCLUDE control statement to collect wanted records 

·         Using an OMIT control statement to exclude unwanted records 

·         Using an INCLUDE or OMIT parameter on an OUTFIL statement to collect wanted records or exclude unwanted records, respectively. Different INCLUDE and OMIT parameters can be used on different OUTFIL statements.

你可以选择这两个语句根据你的需要,哪个简单,高效就用哪个。但是这两个语句不能同时用,下面一段话要注意了:

The information presented in this chapter for the INCLUDE and OMIT statements also applies to the INCLUDE and OMIT parameters of the OUTFIL statement, except that:

·         OUTFIL is processed after sorting, copying or merging

·         The FORMAT=f parameter cannot be used for OUTFIL

 

不过OUTFIL的应用要在下面进行探索,下图是Include控制语句的详细内容。

 http://s4/middle/66961eeetaa133fa3a0d3&690DFSORT – Include or Omit Records" TITLE="JCL DFSORT – Include or Omit Records" />

 

下面是写include语句的步骤

 http://s3/middle/66961eeetaa1340d70162&690DFSORT – Include or Omit Records" TITLE="JCL DFSORT – Include or Omit Records" />

    我们可以选择下面的比较运算符来进行记录的选择。

Comparison Operator

Meaning

EQ

Equal to

NE

Not equal to

GT

Greater than

GE

Greater than or equal to

LT

Less than

LE

Less than or equal to

 

 

 

下面的实例将用来介绍include语句的应用,大家可以通过include语句比较输入与输出文件的区别。

例一  include statement

 

输入文件如下:                 输出文件如下:

----+----1----+----2         ----+----1----+----2

MILLY     100                ANDY      1000      

SUNNY     1000               MAX       1000      

SARAH     500                MICHAEL   1000      

RAYMOND   200                SUNNY     1000      

ANDY      1000               TOM       1000      

TOM       1000                               

ERIC      800                                

MICHAEL   1000                               

FRANK     600                                 

MAX       1000     

 

实现这一功能的的JCL 如下:

 

//TESTHZST JOB 'HANSEN ZENG',                                              
//             CLASS=X,    

//             MSGCLASS=Y,                                                 
//             MSGLEVEL=(1,1),                                             
//             RESTART=JS010,                                              
//             NOTIFY=&SYSUID                                              

//JS010   EXEC PGM=SORT                    

//SORTIN   DD  DSN=TESTHZ.SORTIN.PSFILE,   

//             DISP=SHR                    

//SORTOUT  DD  DSN=TESTHZ.SORTOUT.PSFILE,  

//             DISP=(OLD,KEEP,KEEP)        

//SYSPRINT DD  SYSOUT=*                    

//SYSOUT   DD  SYSOUT=*                    

//SYSIN    DD  *                           

 INCLUDE COND=(11,10,CH,EQ,C'1000')        

 SORT FIELDS=(1,10,CH,A)                    

/*                                         

//              

 

例二: omit statement

 

输入文件如下:                输出文件如下:

----+----1----+----2        ----+----1----+----2

MILLY     100               ERIC      800       

SUNNY     1000             FRANK     600       

SARAH     500              MILLY     100       

RAYMOND   200              RAYMOND   200       

ANDY      1000             SARAH     500       

TOM       1000                               

ERIC      800                                

MICHAEL   1000                               

FRANK     600                                

MAX       1000   

 

实现这一功能的JCL,如下:

 

//TESTHZST JOB 'HANSEN ZENG',                                              
//             CLASS=X,    

//             MSGCLASS=Y,                                                 
//             MSGLEVEL=(1,1),                                             
//             RESTART=JS010,                                              
//             NOTIFY=&SYSUID                                              

//JS010   EXEC PGM=SORT                    

//SORTIN   DD  DSN=TESTHZ.SORTIN.PSFILE,   

//             DISP=SHR                    

//SORTOUT  DD  DSN=TESTHZ.SORTOUT.PSFILE,  

//             DISP=(OLD,KEEP,KEEP)        

//SYSPRINT DD  SYSOUT=*                    

//SYSOUT   DD  SYSOUT=*                    

//SYSIN    DD  *                           

 OMIT COND=(11,10,CH,EQ,C'1000')        

 SORT FIELDS=(1,10,CH,A)                    

/*                                         

//              

                

具体的includeomit语句的应用请看DFSORT reference第三章:Including or Omitting Record.                                                                

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有