`

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 导入。这样做的一个好处是由于所有的产品都使用一种源程序格式,客户就可以很方便的在使用之前进行审核。

分享到:
评论

相关推荐

    电子、通信、计算机大类学生课程实验的心得体会

    电子、通信、计算机大类学生课程实验的心得体会 电子、通信、计算机大类的学生课程实验是工科教育中非常重要的一环,它不仅能够加深学生对理论知识的理解,还能培养学生的实践能力和创新思维。

    【营销】任务一金融产品与金融产品营销认识.docx

    【营销】任务一金融产品与金融产品营销认识.docx

    单片机课程实验-秒表实现

    1.了解LED数码管的工作原理,为秒表时钟模块的实现打下基础。 LED数码管是一种常用的数字显示器件,通过控制每个LED的亮灭来显示数字。在秒表时钟模块中,我们需要利用LED数码管的这一特性,通过单片机控制数码管的显示,从而实现时钟的功能。因此,了解LED数码管的工作原理对于实现秒表时钟模块至关重要。 2.掌握51单片机与LED数码管的接口技术,是实现秒表时钟模块的关键。 51单片机是一种常用的微控制器,可以通过接口与外部设备进行通信。在秒表时钟模块中,我们需要通过单片机与LED数码管之间的接口,控制数码管的显示。因此,掌握51单片机与LED数码管的接口技术是实现秒表时钟模块的关键。在实际操作中,我们需要根据接口协议和数据传输方式,编写相应的程序来控制数码管的显示。 3.合理利用定时器/计数器,是实现秒表时钟模块的效率保障。 在秒表时钟模块中,我们需要实现计时功能,这需要使用到定时器/计数器。定时器/计数器可以用来产生计时脉冲,从而控制秒表的计时。通过合理利用定时器/计数器,可以提高秒表时钟模块的计时精度和效率。在实际操作中,我们需要根据具体的应用场景和需求,选择合适的定时器/计数器参

    基于LSTM的SDN流量预测与负载均衡python源码+详细注释+数据.zip

    个人98分期末大作业项目,代码完整下载可用。主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习者。包含全部项目源码、该项目可以直接使用、项目都经过严格调试,下载即用确保可以运行!

    实验室管理微信小程序设计

    实验室管理微信小程序设计

    机械设计CNC自动打孔机(sw18可编辑+工程图)非常好的设计图纸100%好用.zip

    机械设计CNC自动打孔机(sw18可编辑+工程图)非常好的设计图纸100%好用.zip

    51单片机使用蜂鸣器来播放音乐蜂鸣器播放音乐-小星星亮晶晶

    51单片机使用蜂鸣器来播放音乐蜂鸣器播放音乐-小星星亮晶晶 通过PWM信号来控制蜂鸣器,改变PWM的频率,可以改变蜂鸣器的发声音调,从而可以播.适合新手使用

    机械设计德国6层电万能蒸烤箱(sw21可编辑+cad)非常好的设计图纸100%好用.zip

    机械设计德国6层电万能蒸烤箱(sw21可编辑+cad)非常好的设计图纸100%好用.zip

    node-v12.22.5-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    超声波传感器系列 UFA-150, UFA-200 安装指南

    超声波传感器系列 UFA-150, UFA-200 安装指南

    VOS4890 户外电源系统 用户手册

    VOS4890 户外电源系统 用户手册

    金融产品可行性报告.docx

    金融产品可行性报告.docx

    node-v12.18.2-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    printer.cfg

    printer.cfg

    【计算机二级实操】液晶背光开关控制实验(汇编语言).zip

    【计算机二级实操】液晶背光开关控制实验(汇编语言).zip

    Java毕业设计-基于SpringBoot + Vue 的音乐网站系统 (源码+数据库+文档).zip

    基于Spring Boot和Vue的音乐网站系统是一种使用Spring Boot框架和Vue框架进行开发的在线音乐平台系统。下面是一个简单的介绍: 后端(Spring Boot)部分: 1. 数据库设计:设计合适的数据库模式来存储音乐信息,包括歌曲、专辑、歌手等相关信息。 2. 接口设计:根据需求设计合适的RESTful API接口,用于处理前端请求。您可以使用Spring MVC来开发这些接口,并使用Spring Data JPA来处理数据库访问。 3. 用户管理:实现用户注册、登录、权限管理等功能。使用Spring Security来处理用户认证和授权。 4. 音乐资源管理:上传/编辑/删除音乐、/删除/编辑/分类专辑和歌手等功能。您可以使用Spring Boot提供的文件上传和管理功能,以及数据库来存储和管理相关信息。 5. 推荐系统:实现根据用户的兴趣和行为进行个性化的音乐推荐。可以使用协同过滤、内容推荐或机器学习等技术来进行推荐算法的实现。 前端(Vue)部分: 1. 页面设计:使用Vue框架用户界面,包括首页、歌单推荐、搜索、歌手页面等。使用Vue Router

    中国各地级市工业三废数据(2006-2021年).xlsx

    中国各地级市工业三废数据(2006-2021年).xlsx

    基于扩散模型的半监督脑肿瘤分割内含数据集和环境说明.zip

    本项目致力于基于扩散模型的半监督脑肿瘤分割,旨在提高医学影像在脑肿瘤诊断中的应用。项目利用扩散模型对脑部MRI影像中的肿瘤区域进行精确分割。 在数据集方面,我们使用了公开的脑部MRI影像数据集,如BRATS、Medical Segmentation Decathlon等,并进行了预处理,包括格式转换、裁剪、翻转等操作。在环境搭建方面,我们使用Python编程语言,基于TensorFlow和PyTorch深度学习框架进行开发。为了提高计算效率,我们还使用了GPU加速计算。此外,我们还采用了Docker容器技术,确保实验结果的可重复性。 项目完成后,将实现对脑部MRI影像中肿瘤区域的精确分割,为脑肿瘤的诊断和治疗提供有力支持。同时,项目成果也可应用于其他医学影像分析领域,如肿瘤检测、病变分割等。

    python学习导航.txt

    python烟花代码

    基于 YoLov8 与 Tesser act-OCR 的车流量分析系统

    特性 可识别车型: 可以识别小轿车、货车、公交车等车型。 可统计车流量: 可以分别统计来往两方向的车流量情况。 可识别车牌: 对于清晰的视频可以识别车牌。 更多功能: 还在开发中。 安装 要运行此项目,您需要安装 Python 3.8 或更高版本

Global site tag (gtag.js) - Google Analytics