美文网首页
JCL书写规范

JCL书写规范

作者: 没说再见 | 来源:发表于2019-02-25 14:53 被阅读0次

    一般语句格式规范

        在 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’。有些语句中的某些参数或子参数含有一些特定的特殊字符时,将不需要用撇号括起来。

    相关文章

      网友评论

          本文标题:JCL书写规范

          本文链接:https://www.haomeiwen.com/subject/guhgyqtx.html