我们在写JCL时经常会遇到续行的情况。因为z/OS只认JCL中的前71列中的内容,后边的都会被忽略。而我们的JCL语句加上参数通常会超过71个字符。这时候我们就需要按照JCL语法中的续行规则将一句JCL语句分成多行。以前我每次遇到的时候要么找一个JCL抄一下格式,要么现去google一下,可是每次写对了以后也就忘的差不多了。这次又是被折磨了一番。于是决定总结出来为自己方便为大家方便。
续行写法主要分三种情况:
1、参数域需要续行
2、参数域中包含在引号中的内容需要续行
3、注释部分的续行
参数域续行
先来个例子,然后再针对这个例子解释这里边的规则。有任何一个规则不符合都会导致JCL error哦!而且很难知道为什么。
//DD1 DD DSNAME=SWITCH.LEVEL18.GROUP12,UNIT=3390,
// VOLUME=339023,SPACE=(TRK,(80,15)),DISP=(,PASS)
这是JCL种常用的DD语句。这个例子需要续行的原因主要是因为参数比较多,但是不涉及到某一个参数无法在一行中完整的写完的情况。所以这个就需要用到第一种参数域续行的规则。
规则一:前一行的参数域要写在71列前完整写完(包括逗号)。就比如这个例子中的“UNIT=3390,”这个参数必须写完整并且逗号也写在这一行,不能将这个参数拆分到两行里。
规则二:续写行要以//开头,并且必须在第一列和第二列。第三列必须是一个空格。
规则三:需要在续行里写的参数项的第一个字符必须要写在第4列到第16列这个区域中。此例中是“VOLUME339023”这个