`

IEBCOPY

阅读更多

IEBCOPY

IEBCOPY 系统实用程序的功能是拷贝,压缩和合并分区数据集以及扩展分区数据集,变更分区数据集或者扩展分区数据集的成员,为选择的成员更换新名,对加载模块进行拷贝和重新组块。

下面是 IEBCOPY 的作业控制语句列表:

       

 

       

JOB

作业初始

EXEC 

定义程序名 PGM=IEBCOPY

SYSPRINT   DD 

定义由 IEBCOPY 产生的系统输出信息

SYSUT1     DD

定义输入的分区数据集或扩展分区数据集

SYSUT2     DD

定义输出的分区数据集或扩展分区数据集

SYSUT3     DD  

定义一个溢出数据集,该语句在没有足够的虚拟空间存放输入的 分区数据集或扩展分区数据集目录入口时使用

SYSUT4     DD

定义一个溢出数据集,该语句在没有足够的虚拟空间存放输出的 分区数据集或扩展分区数据集目录入口时使用

SYSIN       DD

定义控制语句,可在这里定义的语句有: COPY ALTERMOD COPYMOD SELECT EXECLUDE 

             

     下面对控制语句进行说明:

     COPY :启动一个或多个拷贝、写在或加载操作。其格式为;

     label COPY     OUTDD=ddname

                   ,INDD=({ddname | (ddname,R)},…)

                   ,LIST={YES|NO}

     操作数说明:

    OUTDD=ddname ”:指定输出的分区数据集名,这里的 ddname 必须是本作业步中的一个 DD 语句名。

    INDD=({ddname | (ddname,R)}, ) ”:指定输入分区数据集或扩展分区数据集,对于卸载操作只能指定一个 ddname ,这里的 R 表示从输入的数据集中选择所有的成员进行相应的操作,此时不需设置 SELECT 语句。

      LIST={YES|NO} ”:指出是否将拷贝的成员名列在 SYSPRINT 数据集中,取值为 YES

时将成员名列表。

     需要注意的是:

   1 如果为拷贝操作,输入数据集和输出数据集必须是分区数据集、扩展分区数据集或卸载模块结果的顺序数据集;

   2 )如果是加载操作(什么是加载操作啊?),输入数据集必须是分区数据集或顺序数据集,而输出数据集则必须是分区数据集;

   3 )如果是卸载操作,输入数据集必须是分区数据集、扩展分区数据集或顺序分区数据集,输出数据集可以驻留在直接存取卷上,也可以驻留在磁带卷上。当驻留在磁带卷上时,它的组织结构必须是顺序数据集,且要指定省略目录或缩影值得

    SPACE 参数:

    ALTERMOD :指明加载模块变更的开始,其格式为:

    label ALTERMOD       OUTDD=ddname LIST={YES|NO}

    操作数说明:

   OUTDD=ddname ”:指定要变更的数据集;

   LIST={YES|NO} ”:指明是否将变更成员名列在 SYSPRINT  数据集中,取值为 YES

时,被变更的所有成员名列在 SYSPRINT 数据集中。

     COPYMOD :指明对拷贝和加载模块从新组块的操作,其格式为:

     label COPYMOD      OUTDD=ddname

                        ,INDD=({ddname | (ddname,R)},…)

                        ,MAXBLK={nnnn|nnK}

                        ,MINBLK={nnnn|nnk}

                           ,LIST={YES|NO}

     操作数说明:

     OUTDD=ddname ”:指定加载模块要拷贝到的分区数据集;

     INDD=({ddname | (ddname,R)}, ) ”:指定输入数据集名,该数据集是一个加载模块库,并在本作业的一个名为 ddname DD 语句中定义,这里的 R 表示从输入的数据集中选择所有的成员进行拷贝,并变更输出加载模块库中任何指定的成员名,此时不需设置 SELECT 语句;

     MAXBLK={nnnn|nnK} ”:指定输出分区数据集记录的最大块值,通常设置的值要小于缺省值,以便数据记录能和其它系统或程序兼容, nnnn 是一个十进制数, nnK 则表示 nn 千字节,其缺省值是输出数据集的块大小;

     MINBLK={nnnn|nnk} ”: 指定输出分区数据集记录的最小块值,缺省值为 1K

     LIST={YES|NO} ”:指明是否将变更成员名列在 SYSPRINT  数据集中,取值为 YES

时,被变更的所有成员名列在 SYSPRINT 数据集中。

     SELECT :确定输入数据集中要拷贝的成员名,其格式为:

     label  SELECT  MEMBER= {name1| name1 newname1,R | name1, ,R }|

           ,( name2 newname2 R | name2 ,, R } ,。。。)

     操作数说明:

     MEMBER= …”: name 确定拷贝的成员名; newname 确定拷贝输出的成员名,如果这个名字在输出分区数据集中已存在,则这个成员不被拷贝,除非同时设置 R 参数, newname ALTERMOD 不能同时使用。

     EXCLUDE :确定输入数据集中不被拷贝和不加载的成员,其格式为:

     label  EXCLUDE  MEMBER= name1 name2 ,…)

     下面是几个实例:

     1

     //COPY   JOB…

     //JOBSTEP   EXEC     PGM=IEBCOPY

     //SYSPRINT    SYSOUT=A

//SYSUT1   DD    DSN=DATASET5,UNIT=disk,VOL=SER=111113,

     //               DISP=SHR

     //SYSUT2   DD    DSN=DATASET4,UNIT=disk,VOL=SER=111112,

     //         DISP=(NEW,KEEP),SPACE=(TRK,(5,1,2))

 

     上面是一个拷贝整个数据集的例子。在该例中, SYSOUT1  DD 定义一个含有两个成员的分区数据集 DATASET5 SYSUT2 DD 定义一个新的分区数据集 DATASET4 ,并为它分配

5 个磁道,其中两个磁道分配给目录区。在这个例子中不需要 SYSIN DD 语句,它把数据集

DATASET5 的所有成员都拷贝到数据集 DATASET4 中。

     2

     //COPY   JOB  

     //JOBSTEP   EXEC     PGM=IEBCOPY

     //SYSPRINT    DD   SYSOUT=*

     //OUT1        DD   DSN=DATESET1,UNIT=disk,VOL=SER=111112,

     //            DISP=(OLD,KEEP)

     //IN6        DD    DSN=DATASET6,UNIT=disk,VOL=SER=111115,

     //           DISP=OLD

     //IN5        DD    DSN=DATASET5,UNIT=disk,VOL=SER=111116,

     //           DISP=(OLD,KEEP)

     //SYSUT3     DD    UNIT=SYSDA,SPACE=(TRK,(1))

     //SYSUT4     DD    UNIT=SYSDA,SPACE=(TRK,(1))

     //SYSIN      DD   *

         COPYOPER       COPY    OUTDD=OUT1

              INDD=IN5,IN6

              SELECT     MEMBER=(B,,R),A)

     /*

     上面是一个拷贝、置换被选择的数据集成员的例子。在该例中:

     OUT1 DD 语句定义含有三个成员( A B F )的分区数据集 DATASET1

     IN6 DD 语句定义含有三个成员( B C F )的分区数据集 DATASET6

     IN5 DD 语句定义含有两个成员( A C )的分区数据集 DATASET5

     SYSUT3 SYSUT4 DD 语句定义临时溢出数据集,并为它们分配一个磁道;

     SYSIN DD 语句定义流内控制数据集,它包含一个 COPY 语句、一个 INDD 语句和一个 SELECT 语句。 OUTDD 参数指定 DATASET1 作为输出数据集, INDD 指定 DATASET5

为第一个处理的输入数据集,而 DATASET6  作为第二个处理的输入数据集,它的处理顺序

为:

1 )在 DATASET5 中查询所选择成员。

2 )首先查到成员 A ,但不拷贝到 DATASET1 中,因为 DATASET1 中已经含有成员 A 且没有设置 R 参数、。

3 )在 DATASET5 中未查到所需要的成员,继续在 DATASET6 中查找。

4 )找到成员 B 并拷贝到 DATASET1  中,虽然 DATASET1  中已经含有成员 B ,但在 这里设置了 R 参数。 SELECT 指定从输入数据集拷贝选择的成员到输入数据集。

 

     3

     //CONVERT     JOB  

     //STEP1       EXEC     PGM=IEBCOPY

     //SYSPRINT    DD      SYSOUT=*

     //SYSUT1      DD      DSN=PDSSET,DISP=SHR,DSNTYPE=PDS

     //SYSUT2      DD      DSN=PDSSET,LINK=PDSSET,DSNTYPE=LIBRARY,

     //            DISP=(NEW,CATLG)

 

上面是一个分区数据集转换为扩展分区数据集的例子。在该例中, SYSUT1 DD 语句定义一个输入的分区数据集 PDSSET SYSUT2  DD 语句定义输出的扩展分区数据集 PDSE ,所有的扩展分区数据集都是由存储管理子系统( SMS )进行管理,其中 LINK 子参数为扩展分区数据集设置 DCB SPACE 特性, DSNTYPE 子参数指出新建数据集是扩展分区数据集而不是分区数据集。这里不需要 SYSIN DD 语句。

 

     4.

      //UNLOAD     JOB              

// EXEC PGM=IEBCOPY

//SYSPRINT DD SYSOUT=A

//SYSUT1    DD DSN=inpds,DISP=SHR

//SYSUT2    DD DSN=tape.dataset.name,UNIT=TAPE,

//  VOL=SER=tape#,LABEL=#,DISP=(NEW,PASS)

//SYSIN   DD DUMMY

/*

上面是将一个分区数据集转存为磁带上的顺序数据文件的例子。

 

5.

//UPLOAD JOB …

// EXEC PGM=IEBCOPY

//SYSPRINT DD SYSOUT=A

//SYSUT1    DD DSN=tape.dataset.name,DISP=(OLD,PASS),

//  UNIT=TAPE,VOL=SER=tape#,LABEL=#

//SYSUT2    DD   DSN=outpds,DISP=SHR

//SYSIN   DD   DUMMY

/*

上例是将一个转存为磁带上顺序文件的分区数据集按原有的 DCB 属性恢复到 DASD (假定该分区数据集已经存在)。

分享到:
评论

相关推荐

    Mainframe JCL

    EXEC语句用于调用执行的程序,如IEBCOPY、IEBGENER等。例如: ``` // EXEC PGM=IEBCOPY, PARM='SIZE=1M' ``` 指示操作系统执行IEBCOPY程序,并传入参数SIZE=1M。 4. DD语句 DD语句用于定义输入、输出和打印数据集。...

    JCL Utilities

    在本文件中提到的JCL实用程序主要包括IEBCOMPR(Compare Data Sets)、IEBCOPY(Copy Data Sets)和IEBDG(Data Set Generation)等。这些工具是针对特定任务设计的,它们极大地简化了复杂的数据处理工作,提高了...

    大型机学习-JCL 语言与实用程序

    接着,我们定义了一个执行语句`CPYLOAD`,调用了`IEBCOPY`程序,并传递了参数`SIZE=1M`。然后,我们定义了两个数据定义语句`IN1`和`OUT1`,分别指定了输入数据集和输出数据集,并通过`SYSIN`定义了输入数据的具体...

    JCL创建、删除、复制、内流程数据集

    `IEBCOPY`是一个强大的工具,用于在不同的数据集之间进行复制、比较和合并操作。在这个例子中,`SYSUT1`定义了源数据集`YN110.SOFTWARE.EXAMPLE`,而`SYSOT2`定义了目标数据集`YN110.SOFTWARE.NEWNONE`。目标数据集...

    JCL语言与实用程序教程

    通过`SYSIN`语句指定了`IEBCOPY`实用程序的参数,用于指定源文件和目标文件。 **1-3 JCL语言的使用** 使用JCL时,需要注意以下几点: - **JOB语句**:设置作业的基本属性,如作业名称、时间限制等。 - **EXEC语句...

    JCL语言与实用程序教程.pdf

    `IEBCOPY`用于数据集之间的复制。 **6-5 IEBGENER** `IEBGENER`用于生成新的数据集。 **6-6 DFSORT** `DFSORT`是一个强大的排序工具,可用于数据的排序、合并等功能。 通过以上知识点的介绍,读者可以对JCL语言...

    大型机操作系统基础实验手册

    实验3涉及数据集的拷贝,通过IEBGENER和IEBCOPY将H3838.SOURCE1的内容复制到新的数据集中,并在成功后将指定成员拷贝到分区数据集。实验4利用IEHLIST显示VTOC信息和数据集详情,帮助学习者了解系统存储结构。 这些...

    JCL实用程序

    例如,IEBCOPY可用于拷贝或合并多个分区数据集或扩展分区数据集。 #### 五、独立实用程序 独立实用程序以IBC开头,主要用于系统出现重大故障时的恢复工作。例如: - **IBCDASDI**:用于初始化和分配直接存取卷上...

    jcl.zip_jcl

    - **IEBCOPY**:用于数据库表空间或成员的复制。 - **DFSORT**:进行数据排序和合并。 - **TSO** (Time Sharing Option) 命令:执行各种系统操作,如创建或修改数据集。 **5. 高级JCL技巧** - **JCL Libraries**:...

    JCL中文教程

    - **了解常用的实用程序**:掌握一些常见的实用程序,如DFSORT、IEBCOPY等的使用方法。 - **实践应用**:能够根据需求编写完整的JCL作业流,并运行测试。 通过两天的课程学习,学员将具备使用JCL语言完成常见任务的...

    cobol677777777777

    解决方法是通过IEBCOPY工具备份、删除并恢复库。另外,如果数据集是顺序的,但在JCL中被错误地标记为库/PDS(Partitioned Data Set),也会导致此错误。 ### S013-18 Abend **描述**:当JCL中指定了库成员但实际找...

    Virtual_Storage_Access_Method(VSAM).rar_vsam_大型机

    1. **创建VSAM数据集**: 使用`IEBCOPY`或`TSO`中的`CREATE`命令创建VSAM数据集,指定数据存储类型、簇大小等参数。 2. **访问VSAM数据**: 通过编程语言(如COBOL、PL/I)的VSAM API进行访问,如`GET`、`PUT`、`...

    IBM大型機学習筆記.doc

    2. IEBCOPY:拷贝、压缩或合并分区数据集和扩展分区数据集。 3. IEBPTPCH:打印或卡片输出数据集。 4. IEBCOMPR:比较不同数据集。 5. IEBISAM:处理ISAM(Indexed Sequential Access Method)数据集的卸载、装载、...

    jcl语言教程

    此外,IBM大型机提供了大量的实用程序,如IEFBR14、IEBCOMPR、IEBCOPY、DFSORT等,用于数据转换、压缩、排序等常见数据处理任务。掌握这些实用程序的使用方法,可以大大提高数据处理的效率和准确性。 #### 结论 ...

Global site tag (gtag.js) - Google Analytics