继续练习 JCL, 虽说速度确实有点慢,可是我也尽力了,时间有限啊,我也不是那种只顾着学习的人,常去的 BLOG 还是要看,枪枪三人行也要看,还要关注一下 WAR3, 关注一下出了什么碟子,还要听音乐,一天的空闲时间就那么多,所以也就只有这点时间来学大机了。前几天练习了基本语法以及系统实用程序 IEFBR14, 以及 IEBGENER 的基本用法,凡是涉及到流内控制语句的就先放下了,不太看得懂,然后今天就轮到 IEBCOPY 了,不过先把前面的 EFBR14, 以及 IEBGENER 进行一个总结,但是首先应该注意的一点是凡是以 IEB 打头的数据集实用程序均不可用于 VSAM 数据集!
IEFBR14
IEFBR14 是一个不含控制语句的实用程序,它可以用来创建或删除磁盘数据集。下面
是它的应用实例:
例 . 数据集的删除
//DELETE JOB …
// EXEC PGM=IEFBR14
//DD1 DD DSN=data.set.name,DISP=(OLD,DELETE)
/*
需要注意的是,如果要删除的数据集已编目,用户不能在指定 UNIT 或者 VOL=SER 参
数。如果用户指定了以上参数,那么数据集虽然同样被删除,但不能被反编目。 (其实我现在连这几个参数的实际意义,编目,反编目都理解得不大好,失败)。
IEBGENER 程序主要用于:
( 1 ) 建立顺序数据集、分区数据集或扩展分区数据集成员的备份。这个拷贝可以是磁带到磁带、磁盘到磁盘或磁盘到磁带。注意:如果需要将备份数据集放在原数据集所在的卷,它们两者不能同名。
( 2 )从顺序数据集产生分区数据集或扩展分区数据集。通过实用程序控制语句,将顺序数据集逻辑化分为若干个记录组并为其分配成员名,之后 IEBGENER 程序把这些新建的成员放到指定的分区数据集或扩展分区数据集中。注意:对于含有跨区记录的数据集不能产生分区数据集或扩展分区数据集。
( 3 )为分区数据集添加新成员。 IEBGENER 程序将输入的顺序数据作为一个成员加到指定的分区数据集或扩展分区数据集中。
( 4 )产生一个编辑的顺序数据集、分区数据集或扩展分区数据集。通过使用实用程序控制语句,指定一个或一组记录或整个数据集的编辑信息。
( 5 ) 处理含有双字节字符数据集。用 IEBGENER 可以拷贝、编辑、重新组块或打印含有双字节字符( DBCS )的数据,也可以将含有 DBCS 数据的顺序数据集转换 成为分区数据集。
( 6 ) 打印顺序数据集、分区数据集或扩展分区数据集的成员。
( 7 ) 对数据集的逻辑记录进行重新组块或改变其长度。
( 8 ) 为顺序输出数据集拷贝用户标号。
( 9 ) 为用户例程提供编辑设施及出口,该例程用于处理标号、受控输入数据及永久性输入输出错误。
下面是 IEBGENER 的作业控制语句列表:
语 句 |
说 明 |
JOB |
作业初始 |
EXEC |
指定程序名 PGM=IEBGENER |
SYSPRINT DD |
指定系统输出数据集 |
SYSUT1 DD |
定义输入数据集 |
SYSUT2 DD |
定义输出数据集 |
SYSIN DD |
定义控制数据集,控制语句可以是 GENERATE 、 EXITS 、 LABELS 、 MEMBER 、 RECORD
|
控制语句说明:
GENERATE :指明成员名和别名数、记录标识符、文字及控制数据集中的编辑信息。
EXITS :指明用户出口例程。
LABELS :特指用户标号处理。
MEMBER :指定新建分区数据集或扩展分区数据集的成员名或成员别名。
RECORD :定义将处理的记录组并提供编辑信息。
例 1 . //PRINT JOB …
//STEP1 EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=A
//SYSIN DD DUMMY
//SYSUT1 DD DSN=INPUT,UNIT=3380,DISP=SHR,
// DCB=(RECFM=F,LRECL=80,BLKSIZE=80),VOL=SER=111112
//SYSUT2 DD SYSOUT=A,DCB= DCB=(RECFM=F,LRECL=80,BLKSIZE=80)
上面是一个打印顺序数据集的例子。由于该作业不需要公用程序的控制语句,因此 SYSIN DD 语句定义了空数据集 DUMMY , SYSUT1 定义了输入顺序数据集 INPUT , SYSUT2
定义了输出数据集的输出设备,其中 DCB 参数用于改变数据输出格式。