`

IEBCOMP 和 IEHLIST

阅读更多

IEBCOMP

IEBCOMPR 程序用于在两个数据集的逻辑记录间进行比较,这两个数据集可以是顺序

数据集、分区数据集或扩展分区数据集。它能对数据集或数据集成员的定长、变长、组块

非组块或未定义记录进行比较。但它不能对加载模块进行比较。

两个顺序数据集比较相同,是指它们含有相同数量的记录且相关记录和关键字完全相

同。而两个分区数据集或两个扩展分区数据集比较相同,则是指:

1 )相关成员含有相同的记录;

2 )注释列表在相关成员的位置相同;

3 )相关记录和关键字完全相同;

4 )相关目录和用户数据区完全相同。

  对于相同的数据集必须同时满足这些条件,否则不能视其为相同数据集。

需要注意的是,对于分区数据集和扩展分区数据集,只有其中一个数据集的所有目录项

名字在另一个数据集的目录中都能找到相同的目录项名时,才能进行比较。否则是不能比较的。 如图所示:

下面是关于 IEBCOMPR 程序语句的列表:

     

     

JOB

作业开始

EXEC

定义程序名 PGM=IEBCOMPR

SYSPRINT  DD

指定系统输出数据集

SYSUT1     DD

定义需要比较的数据集

SYSUT2     DD

定义需要比较的数据集

SYSIN      DD

定义控制数据集或 DUMMY ,控制语句可以是 COMPARE EXITS

LABELS

 

控制语句说明:

     COMPARE 定义数据集的组织结构,在 SYSIN  DD 中设置控制语句时,它必须是

第一个控制语句,当输入数据集是分区数据集或扩展分区数据集时,必须设置这个语句,语句格式如下:

     label  COMPARE  TYPROG={PS/PO}

其中 TYPROG={PS/PO} 用于指定输入数据集的组织结构, PS 表示输入数据集为顺序数据集,为缺省值; PO 表示输入数据集是分区数据集或扩展分区数据集。

EXITS 定义用户所用的出口例程。当用户调用出口例程时,需要用该语句。当设置多

EXITS 时, IEBCOMPR 将只用最后一个。 EXITS 的语句格式为:

label  EXITS  INHDR= 例程名

            ,INTLR= 例程名

            ,ERROR= 例程名

            ,PRECOMP= 例程名

其中“ INHDR= 例程名”指定处理用户输入头标的例程名;“ INTLR= 例程名”指定处理

用户输入尾标的例程名;“ ERROR= 例程名”指定出错处理接收控制的例程名;

PRECOMP= 例程名”指定一个例程名,该例程在 IEBCOMPR 比较输入数据集之前对逻辑

记录进行处理。

LABELS 指定是否将用户标号作为数据来处理,当设置多个 LABELS 语句时,

IEBCOMPR 程序只用最后一个, LABELS 语句的格式为:

label  LABELS  DATA={YES | NO | ALL| ONLY}

其中 DATA= {YES | NO | ALL| ONLY} 指明是否将用户标号作为数据处理。 DATA 的取

值如下:

YES :所有用户标号都作为数据处理,并依照返回码,将标号作为数据终止来处理,该

值为缺省值。

NO :仅将用户标号作为数据处理。

ALL :所有用户标号作为数据处理, 16 中返回码将使 IEBCOMPR 程序完成剩余用户标

号组的处理并终止作业步。

ONLY :只用用户头标作为数据处理,处理时不管是否有返回码。

 

1 比较两个分区数据  

//DISKDISK  JOB …

//STEP1     EXEC  PGM=IEBCOMPR

//SYSPRINT  DD  SYSOUT=A

//SYSUT1    DD  DSN=PDSSET1,UNIT=disk,DISP=SHR,

//                DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000),

//                VOLUME=SER=111112

//SYSUT2    DD  DSN=PDSSET2,UNIT=disk,DISP=SHR

    //                DCB=(RECFM=FB,LRECL=80,BLKSIZE=2000)                               

//SYSIN     DD  *

   COMPARE  TYPROG= PO

/*

在上例中, SYSUT1 DD 语句定义输入数据集( PDSSET1 ),这是个组块数据集,它驻

留在磁盘卷上。 SYSUT2 DD 语句定义另一个输入数据集( PDSSET2 ),它也是个驻留在磁

盘卷上的块组数据集。 SYSIN DD 语句定义流内控制数据集,其中的控制语句表示两个输入

数据集是分区数据集。

 

2. 比较磁带上的两个顺序数据集

  //TAPETAPE JOB  ...

    //         EXEC PGM=IEBCOMPR

    //SYSPRINT DD  SYSOUT=A

    //SYSUT1   DD  DSNAME=SET1,LABEL=(2,SUL),DISP=(OLD,KEEP),

    //             VOL=SER=001234,DCB=(DEN=2,RECFM=FB,LRECL=80,

    //             BLKSIZE=2000,TRTCH=C),UNIT=tape

    //SYSUT2   DD  DSNAME=SET2,LABEL=(,SUL),DISP=(OLD,KEEP),

    //             VOL=SER=001235,DCB=(DEN=2,RECFM=FB,LRECL=80,

    //             BLKSIZE=2000,TRTCH=C),UNIT=tape

    //SYSIN    DD  *

                                                COMPARE  TYPORG=PS

LABELS  DATA=ONLY

    /*

 

SYSUT1 DD 定义了一个输入数据集 SET1 。该数据集在一个有标号( labeled )的、 7

磁带卷上。

SYSUT2 DD  定义了一个输入数据集 SET2 。该数据集在一个有标号( labeled )的、 7

轨磁带卷上。它是该磁带上第一个或者唯一一个数据集。

SYSINDD 后的控制语句 COMPARE TYPORG=PS 表明输入数据集是顺序数据集;

LABELS DATA=ONLY 表明用户首标( header labels )被当作数据加以比较,而磁带上的其

他标号则予以忽略。

IEHLIST

IEHLIST 程序用于系统信息列表,其中包括分区数据集目录列表、 VTOC 列表以及编目

列表等。 下面是它的应用实例:

      //LIST        EXEC    PGM=IEHLIST

     //SYSPRINT    DD      SYSOUT=*

     //D1          DD      UNIT=SYSDA,VOL=SER=PACK11,DISP=OLD

     //D2           DD      UNIT=SYSDA,VOL=SER=PACK12,DISP=OLD

     //D3          DD      UNIT=SYSDA,VOL=SER=PACK17,DISP=OLD

     //SYSIN       DD      *

       LISTCTLG    VOL=SYSDA=PACK12

       LISTVTOC    VOL=SYSDA=PACK11,DSN=(USER.F1)

       LISTPDS      VOL=SYSDA=PACK17,DSN=U1.LIB

     /*

  注意: DD 语句中的 VOL UNIT 参数的设置要与 SYSIN DD 中控制语句的相关参数一致。

 

IEHLIST SYSIN DD 语句定义控制数据集:

IEHLIST 的控制语句:

LISTVTOC

LISTCTOG

LISTPDS   DSNAME=(pdsname,pdsname)

-显示格式: DUMP    or    FORMAT

-控制语句中的 DSNAME 不能简写成 DSN

-控制语句中的 VOL 参数格式为:

VOL=XXXXXXX=YYYYYYY ,其中 XXXXXXXXX DD 语句中的 UNIT 参数指定的值,而 YYYYYYY SER 参数指定的值。例如:

VOL=SYSDA=USER01            or       VOL=3390=USER01

 

DFSORT

DFSORT 程序用于数据排序 ,下面是它的应用实例:

//STEP1  EXEC  PGM=DFSORT

//SYSIN  DD  *

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

//SORTIN  DD  DSN=TEST.LOG,DISP=OLD

//SORTOUT  DD  DSN=SORT.LOG,DISP=(NEW,PASS),

//                UNIT=SYSDA,SPACE=(CYL,1)

//SORTWK1  DD  UNIT=SYSDA, SPACE=(CYL,1)

STEP1 语句用于调用 DFSORT 程序; SYSIN DD 语句定义控制数据集,其中控制语句

SORT  FIELDS=(1,10,CH,A) 指出要排序的内容始于输入数据的第一个位置,以递增前 10 字符进行排序; SORTIN DD 语句给出用于排序的输入数据集名和状态;

SYSOUT DD 语句为排序的输出结果指定数据集;

SORTWK1 DD 语句为排序操作分配工作空间。

 

IEBUPDTE

Original URL: http://bluemainframe.net/2007/06/05/iebupdte/

IEBUPDATE 这个 UTILITY 最常见的用法是用来在分区数据集中创建多个 member ,或者更新这些 member 中的数据。虽然 IEBUPDATE 能够用来处理给中类型的数据,但是主要用途还是创建或者维护 JCL 的过程库或者汇编语言的宏程序库。今天,这个 UTILITY 大多用来做程序产品的发布和维护了。很少被普通 TSO 用户使用。

这里有一个很基本的例子用来往 MY.PROCLIB 中添加两个 JCL 的过程的 MEMBER 。运用 ISPF 也许能够很方便的完成这些事情,但是如果我们假设这个 JOB 已经在磁带上了,那么很显然就会比 ISPF 操作更加有效。

 

//OGDEN10 JOB 1,BILL,MSGCLASS=X

// EXEC PGM=IEBUPDTE

//SYSPRINT DD SYSOUT=*

//SYSUT1 DD DISP=OLD,DSN=MY.PROCLIB

//SYSUT2 DD DISP=OLD,DSN=MY.PROCLIB

//SYSIN DD DATA

./ ADD LIST=ALL,NAME=MYJOB1

//STEP1 EXEC=BILLX1

//PRINT DD SYSOUT=A

// (more JCL for MYJOB1)

//SYSUDUMP DD SYSOUT=* (last JCL for MYJOB1)

./ REPL LIST=ALL,NAME=LASTJOB

//LIST EXEC PGM=BILLLIST

// (more JCL for this procedure)

//* LAST JCL STATEMENT FOR LASTJOB

./ ENDUP

/*

 

对这个例子进行一下说明:

这是一个更新数据集的过程,所以 SYSUT1 SYSUT2 都指向了同一个数据集。如果指向不同的话,那么就会是一个先复制然后再更新的过程。

SYSIN DD DATA 的格式来看,输入流的前两列会有 // 表示,它并不会被 JCL 语句打断。输入流的结尾会有 /* 的标识。 IEBUPDATE UTILITY 控制语句由 ./ 来引导。

一个名为 MYJOB1 MEMBER 被加入到 MY.PROCLIB 中。而且这个 MEMEBER 并不需要已经存在。而已经存在的 MEMBER LASTJOB 就会被新的内容替换掉。

另外, IEBUPDATE 这个 UTILITY 还能够根据控制语句中的序列号来添加或者替换相应的 MEMBER 。这也是针对 JCL 语句或者源语句中那些数字序列的所剩不多的用法。

最后我们需要再次重申 IEBUPDATE 最有代表性的用法是用作程序的发布和维护 。比方说,如果需要给客户的程序库中添加 25 JCL 过程,我们只需要将这 25 个过程作为一个程序包用 IEBUPDATE 导入。这样做的一个好处是由于所有的产品都使用一种源程序格式,客户就可以很方便的在使用之前进行审核。

分享到:
评论

相关推荐

    电动车上牌管理系统 SSM毕业设计 附带论文.zip

    电动车上牌管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B

    tornado-6.1-cp39-cp39-manylinux2010_x86_64.whl

    tornado-6.1-cp39-cp39-manylinux2010_x86_64.whl

    【eclipse和idea两个版本运行源码】基于Java Swing +mysql 实现的网吧管理系统

    一、项目简介 本项目是一套基于Java Swing 开发的网吧管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 二、技术实现 ​后台技术:java swing ​数据库:MySQL ​数据库连接池:c3p0 三、系统主要功能 用户登录: 分为 普通用户和管理员 两种角色 菜单模块:上机,下机, 系统设置:管理员设置,会员设置,计费设置, 退出系统 管理模块:增加会员,删除会员,信息修改,信息查询 视图模块:主页视图,在线用户,统计视图, 统计报表模块:人数报表,收入报表 帮助模块:联系我们,关于系统 详见:https://blog.csdn.net/weixin_43860634/article/details/125247764

    pc-dmis软件脚本-输出Excel格式报告

    使用软件自带的basic脚本编辑制作的脚本 低版本软件无法输出Excel报告,可以通过脚本方式实现这一功能

    【java毕业设计】校园失物招领系统源码(springboot+vue+mysql+说明文档).zip

    项目经过测试均可完美运行! 环境说明: 开发语言:java jdk:jdk1.8 数据库:mysql 5.7+ 数据库工具:Navicat11+ 管理工具:maven 开发工具:idea/eclipse

    基于java的网上电子书店h答辩PPT.pptx

    基于java的网上电子书店h答辩PPT.pptx

    基于微信小程序的微信小程序校园失物招领答辩PPT.pptx

    基于微信小程序的微信小程序校园失物招领答辩PPT.pptx

    基于java的基于Java的学生综合测评管理系统答辩PPT.pptx

    基于java的基于Java的学生综合测评管理系统答辩PPT.pptx

    pandas-2.1.4-cp39-cp39-win_amd64.zip

    pandas whl安装包,对应各个python版本和系统(具体看资源名字),找准自己对应的下载即可! 下载后解压出来是已.whl为后缀的安装包,进入终端,直接pip install pandas-xxx.whl即可,非常方便。 再也不用担心pip联网下载网络超时,各种安装不成功的问题。

    判断题 - 题目列表 - 图-练习题集飒飒阿萨

    springboot体育器材管理系统(附源码+数据库)71175

    管理员功能: 用户管理:管理员可以管理用户账户,包括审核新注册用户、禁用违规用户、重置密码等操作。 器材管理:管理员可以管理器材的信息,包括添加新器材、编辑器材详情、设定器材规则和限制等。 器材预约与借还管理:管理员可以处理用户的器材预约请求,确认或调整预约时间,并记录借还操作。 库存管理:管理员可以监控器材库存情况,及时补充不足的器材并处理损坏或报废的器材。 数据统计与报表:管理员可以分析系统的使用情况和借还记录,生成数据统计报表以了解器材使用情况和借还频率等。 系统设置与维护:管理员可以进行系统设置,包括配置器材规则、设定可用时间段、备份数据、优化系统性能等。 消息通知与提醒:管理员可以向用户发送消息通知,如器材预约成功、归还提醒、系统更新通知等。

    Jira插件安装包Dynamic-forms

    Jira插件安装包Dynamic-forms

    pandas-2.1.4-cp311-cp311-win_amd64.zip

    pandas whl安装包,对应各个python版本和系统(具体看资源名字),找准自己对应的下载即可! 下载后解压出来是已.whl为后缀的安装包,进入终端,直接pip install pandas-xxx.whl即可,非常方便。 再也不用担心pip联网下载网络超时,各种安装不成功的问题。

    少儿图形化scratch编程作品源码集100个

    Scratch是一款由麻省理工学院(MIT)的“终身幼儿园团队”开发的图形化编程工具,专为儿童设计,旨在帮助他们学习编程思维和逻辑能力。

    基于java的学生就业管理系统答辩PPT.pptx

    基于java的学生就业管理系统答辩PPT.pptx

    课设毕设基于SpringBoot+Vue的旅游门票信息系统设计与实现源码可运行.zip

    本压缩包资源说明,你现在往下拉可以看到压缩包内容目录 我是批量上传的基于SpringBoot+Vue的项目,所以描述都一样;有源码有数据库脚本,系统都是测试过可运行的,看文件名即可区分项目~ |Java|SpringBoot|Vue|前后端分离| 开发语言:Java 框架:SpringBoot,Vue JDK版本:JDK1.8 数据库:MySQL 5.7+(推荐5.7,8.0也可以) 数据库工具:Navicat 开发软件: idea/eclipse(推荐idea) Maven包:Maven3.3.9+ 系统环境:Windows/Mac

    大学志愿填报系统.zip

    随着社会对志愿服务活动的日益重视,各大高校也纷纷参与到志愿服务的行列中。为了更好地管理和记录志愿者活动,提高志愿服务的质量和效率,我们开发了这款大学志愿服务系统。 该系统主要包括多个功能模块,如信息管理、活动管理、学生管理等。信息管理模块允许学校管理员录入、修改和删除学校的基本信息,包括学校账号、名称、联系电话、地址、特色以及办学理念等,确保信息的准确性和完整性。活动管理模块则用于记录和管理志愿者活动的相关信息,包括活动的名称、时间、地点、参与人员等,方便志愿者进行报名和签到。 此外,系统还提供了学生管理模块,用于记录学生的志愿服务经历和表现,为学生参与志愿服务提供便利。同时,系统还支持照片上传和展示功能,通过展示志愿者活动的照片,让更多人了解和关注志愿服务事业。 整个系统界面简洁明了,操作便捷,功能强大。通过使用该系统,高校可以更加高效地管理和记录志愿者活动,提高志愿服务的整体水平。同时,该系统也为广大志愿者提供了一个展示自我、服务社会的平台。

    turbo均衡算法研究

    turbo均衡算法研究

    静态编译的Qt6.7.3(win10+MSVC2022+openssl+静态运行时) part01

    https://blog.csdn.net/aggs1990/article/details/143491823 静态编译的Qt6.7.3(win10+MSVC2022+openssl+静态运行时) 压缩包比较大,这是第一部分

    tornado-6.4b1-cp38-abi3-musllinux_1_1_i686.whl

    tornado-6.4b1-cp38-abi3-musllinux_1_1_i686.whl

Global site tag (gtag.js) - Google Analytics