DD语句的位置参数有*,DATA,DUMMY,前两个代表内部数据流的开始,DUMMY代表处理时分配给文件的空间为空。
//ddname DD {* |DATA}[,DLM=XX]
DD语句在作业流中供给作业可能的输入数据,这类数据被称为内部数据流。一个DD语句用*代表包含数据流,或DATA作为位置参数表示数据流的开始。
当使用DD*时下列情况下数据记录结束
(1)在输入数据里碰到/*
(2)碰到另一个JCL语句的开始符号//
(3)JCL结束
(4)在DD语句中通过DLM参数定义任何两个分隔符,通常只用于DD DATA
当使用DD DATA时,数据记录的结束以下列形式表示
(1)/*在输入数据里
(2)JCL结束
(3)在这个DD语句中通过DLM参数定义任何两个分隔符
※dummy数据集
//ddname DD DUMMY
DD语句的关键字参数
※ DSN
(1)数据集名字(DSN)参数指定数据集的名字
(2)数据集分为临时数据集和非临时数据集
//BKTRAN DD DSN=IBMUSER.TEST.BKTRAIN
临时数据集的语法格式:
//BKTRAN DD DSN=&&BKTRAN
//BKTRAN DD
DSNAME参数用来标识数据集的名字,对于永久性数据集,DSNAME参数总是需要的,它指定数据集的名字及在编目中的位置标号,对于临时数据集DSNAME参数是可选的
//BKMAST DD DSNAME=IBMUSER.TEST.BKMAST.DISP=SHR
//WORK01 DD UNIT=SYSDA,VOL=SER=DMTP01,SPACE=(CYL,(2,3))
※ DISP
数据集处置参数指定数据集当前的状态及告诉系统当作业步执行完后处置数据集的方法。数据集处置参数语法格式为:
DISP=(Disp1, Disp2, Disp3)
Disp1:文件的当前状态,可以为:
(1)NEW:当前数据集不存在,作业执行完后,系统会分配新的数据集
(2)SHR:当前数据集已存在,作业可以共享数据集,这是默认值
(3)OLD:当前数据集已存在。作业符独占该数据集,即作业运行完之前,其他作业不可以使用
(4)MOD:如果当前数据集已存在,系统就会独占该数据集并将新记录追加在该数据集的末尾;如果该数据集当前不存在,系统就会建立一个新数据集
Disp2:作业正常结束的处置方法
(1)DELETE:删除该数据集
(2)KEEP:保留数据集
(3)PASS:传递给后续作业步
(4)CATLG:将该数据集登目到系统或用户目录中
(5)UNCATLG:取消该数据集在系统或用户目录中的编目
Disp3:作业异常结束后处置数据集的选项
(1)DELETE:删除该数据集
(2)KEEP:保留该数据集
(3)CATLG:将该数据集登目到系统或用户目录中
(4)UNCATLG:取消该数据集在系统或用户目录中的编目
//BKMASTO DD DSN=IBMUSER.TEST.BKMASTO.DISP=SHR
//BKMASTN DD DSN=IBMUSER.TEST.BKMASTN,
// DISP(NEW, CATLG,DELETE)
※ UNIT
用来标识数据集存储的设备,输入、输出设备参数用来申请存取数据集的硬件设备的类型,可以通过下面的3种方法指定你所需要的设备:
(1)硬件地址,比如UNIT=OC4,其中OC4就是磁盘设备的地址
(2)设备类型,比如UNIT=3390,其中,3390就是一种磁盘设备
(3)设备组名,比如UNIT=SYSDA,其中SYSDA是你的系统程序员定义的磁盘设备的组名,可能包括所有的设备类型,比如,3380、3390
※ VOLUME
VOLUME或者简称为VOL参数,用来指定数据集的介质卷号或卷组的名字,介质卷可以是指定的磁带卷名TAP01或者指定的磁盘组的名字DMTP01
//BKMASTN DD DSN=IBMUSER.TEST.EXMASTN,
// DISP=(NEW,CATLG),
// SPACE=(TRK,(5,5),RLSE),
// UNIT=SYSDA,
// VOL=SER=DMTP01
// DCB=(RECFM=FB,LRECL=100,DSORG=PS)
※SPACE
用来说明建立数据集所需要的存储空间大小,SPACE参数的特性为:
(1)用来指定行分配数据集所需要的DASD空间大小
(2)数据集所需要的空间大小可以使用块、扇区、或柱面为单位
//SPACE=(TRK,(PRIMARY,SECONDARY),DIRECTORY)
其中第一个参数指定要分配的空间的单位,其取值为:
(1)BLKS:指明以块为基本单位分配数据集存储空间
(2)TRK:指明以磁道扇区为基本单位分配数据集存储空间
(3)CYL:指明以磁道柱面为基本单位分配数据集存储空间
第二个参数PRIMARY,指定一个新数据集生成时申请的基本存储空间,以前面指定的BLKS/TRK/CYL为单位
第三个参数SECONDARY,指定第一次分配的存储空间用完以后,每个增加的存储空间的数量。也是以前面指定的BLKS/TRK/CYL为单位
第四个参数DIRECTORY,指定分配给目录空间的大小,对于顺序数据集,该值为零,只有是分区数据集(PDS)才需要指定此参数。
※ LABEL
说明数据集所在的磁带或磁盘卷的标号,它也指定磁带或磁盘卷是否为写保护的。
//BKTRAN DD LABEL=RETPD=30
※ DCB
数据控制块参数用来说明程序操作的数据集的控制块信息,DCB参数可以说明数据集的类型、块大小及逻辑记录长度等。
//DCB=(DSORG=PS, RECFM=FORMAT, LRECL=NUM1,BLKSTZE=NUM2)
DCB的参数有:
(1)DSORG:指定数据集的组织形式,其值可以如下:
1.PS:物理顺序文件(physical sequential)
2,.PO:分区数据集(partitioned)
3.DA:直接存取数据集(direct)
4.IS:索引顺序数据集(inedxed sequential)
(2)RECFM:记录格式,其取值可以为F, V, FB, VB, FBA, VBA等
(3)LRECL:逻辑记录长度
(4)BLKSIZE:记录块的大小
(5)RECFM, LERCL,和BLKSIZE之间的关系如下:
1.RECFM=F,定长记录,LRECL=BLKSIZE,即一个块只包含一条逻辑记录
2.RECFM=FB,定长记录,BLKSIZE=n*LRECL,即一个块包含多条逻辑记录
3.RECFM=V,变长记录,LERCL=最长的数据记录+4 byte,BLKSIZE=LRECL+4 byte
4.RECFM=VB,变长记录,LERCL=最长的数据记录+4 byte,BLKSIZE=最长的数据块+4 byte,并至少=RECFM+4
5.RECFM=FA/FBA,定长打印记录,LRECL=实际记录长度+1个打印控制字符
6.RECFM=VB/VBA,变长打印记录,LRECL=最长的数据记录+4 byte+1个打印控制字符
※ SYSOUT
SYSOUT数据集用来存放输出的数据流,即作业运行后结果,通常需要输出到打印机,SYSOUT参数用来指定系统输出数据集及它的输出类别(class)