一般语句格式规范
在 JCL 中,除/*语句外的所有语句均以第一、二列的//符号作为开始标志,系统规定这 些语句的长度为 80 列。这 80 列在逻辑上被划分为五个区域,分别是标识符区、名字区、操作符区、参数区和说明区,即:
标识符区 名字区 操作符区 参数区 说明区
// or //* or /* name operator parameter comment
一般情况下,标识符区的符号为“// ”,该符号表明该条语句为 JCL 语句。标识符区位于每条语句的第一、二列。
在特殊情况下,标识符区的符号将有所变化。
·名字区
名字区指明一个语句,便于系统控制块或其他语句引用它。名字可以由 1~8 个字母数字 或通配符组成,但第一个字符必须是字母或通配符,且必须从第三列开始。名字区后必须跟一个或多个空格,可以选择名字表达出这个 JCL 语句的作用。下面给出几个正确与错误的名字区的例子:
正确的 错误的
//Z //9Z
//BACKUP#1 //TAPEBACKUP
//#99 //TEST*9
//$EXAM //EXAM(0)
·操作符区
操作符区位于名字区之后,规定了语句的类型:JOB、EXEC、DD、PROC、PEND,或操作员命令。名字区后必须跟一个或多个空格。例如:
//EXAMPLE JOB
//STEP1 EXEC
//INDD1 DD
·参数区
参数区在操作符区之后,其中包括被逗号分隔的参数,参数由事先规定好的关键字组成,对于这些参数其数值必须是可被代换的变值。参数区没有固定的长度及列的要求。例如:
//EXAMPLE JOB 2000,CLASS=A
//STEP1 EXEC PGM=IEYFORT
//PRINT DD SYSOUT=A
·说明区
说明区位于参数区后,用于对相应语句进行注释说明,它可以是任何需要的说明信息,注释区后必须跟一空格。需要注意的是,仅当参数出现时才能书写说明信息,不然容易与参数混淆。下面是一个说明区的例子:
//EXAMPLE JOB ,CLASS=A IT IS A COMMENT
JCL 只允许在参数区和说明区有续行,当需要续行时,在当前行的第 71 列前必须将某个参数或某个子参数以及参数后的逗号写完整,且下一行第 1、2 列为“// ”,第3 列为空格,续行的内容只能从4~16 列开始,如从 16 列后开始,将被认为是注释语句。下面是一个续行的例子:
//DATA DD DSN=SYS1 。FORTLIB,
// DISP=OLD
参数规则在JCL中,参数区内的参数的类型分为两类:
(1)位置参数(positional ):与其他参数保持相对位置的参数;
(2)关键字参数(keyword ):由一个关键字和等号后面的可变数据组成。 如果在一个语句内既有位置参数又有关键字参数时,所有的关键字参数必须位于位置参 数之后。
例: //EXAMPLE JOB 2000,CLASS=A 位置参数 关键字参数 一个位置参数或关键字参数中的可变数字,也可能是一个子参数表。该表中同样可能含有位置和关键字这两种类型的参数,它们同样遵循位置参数和关键字参数的所有规则。当参数有子参数时,子参数必须顺序排列在圆括号括内。
例: //EXAMPLE JOB (2000,100,30),COND=(9,LT) 在了解参数类型的概念后,我们总结出参数的书写规则如下:
1.位置参数和关键字参数之间必须用逗号分开,不允许有空格。值得注意的是,在 JCL 语句中错写空格,经常导致非常难以查出的错误。
正确的 //EXAMPLE JOB 2000,CLASS=A
错误的 //EXP JOB (2000,9)CLASS=A
2.必须按规定的次序书写参数:所有的关键字参数必须位于位置参数之后,而所有位 置参数也必须按规定排列。
正确的 //EXAMPLE JOB 2000,CLASS=A
错误的 //EXAMPLE JOB CLASS=A,2000
3.当缺省某个位置参数或某个子参数时,应以一个逗号指明所在位置。当缺省最后一 个位置参数时,逗号可以省略。
//EXP JOB (2000, ,9),CLASS=A
//SYSTEM JOB ,SYSTEM,CLASS=S,MSGLEVEL=(0,0)
4. 当没有任何位置参数时,则不必书写任何内容表示。
//EXP JOB CLASS=A
5.关键字参数之间没有相对位置的规定,可以按任何次序排列。
//EXP JOB 2000,CLASS=A,MSGLEVEL=1
也可写作: //EXP JOB 2000, MSGLEVEL=1,CLASS=A
6.允许含有特殊字符的参数或子参数,且其中的特殊字符并非起某种特定的语法功能 时,必须用撇号“’”替代括号将这些参数和子参数括起来,例:ACCT=’123+456’.而在这些参数与子参数中要用到撇号时,则需两个连续的撇号表示,例 V:O’NEIL 需写 作’O’’NEIL’。有些语句中的某些参数或子参数含有一些特定的特殊字符时,将不需要用撇号括起来。
网友评论