JCL - EXEC 语句



每个 JCL 可以由许多作业步骤组成。每个作业步骤可以直接执行程序,也可以调用过程,而过程又可以执行一个或多个程序(作业步骤)。包含作业步骤程序/过程信息的语句是 **EXEC 语句**。

EXEC 语句的目的是为在作业步骤中执行的程序/过程提供所需的信息。在此语句中编码的参数可以将数据传递给正在执行的程序,可以覆盖 JOB 语句的某些参数,如果 EXEC 语句调用过程而不是直接执行程序,则可以将参数传递给过程。

语法

以下是 JCL EXEC 语句的基本语法

//Step-name EXEC Positional-param, Keyword-param 

描述

让我们看看上面 EXEC 语句语法中使用的术语的描述。

STEP-NAME

这标识 JCL 中的作业步骤。它可以是长度为 1 到 8 的字母数字字符。

EXEC

这是将其标识为 EXEC 语句的关键字。

POSITIONAL-PARAM

这些是位置参数,可以分为两种类型

位置参数 描述
PGM 这指的是要在作业步骤中执行的程序名称。
PROC 这指的是要在作业步骤中执行的过程名称。我们将在单独的章节中讨论它。

KEYWORD-PARAM

以下是 EXEC 语句的各种关键字参数。您可以根据需要使用一个或多个参数,它们之间用逗号隔开

关键字参数 描述
PARM

用于向在作业步骤中执行的程序提供参数化数据。这是一个程序相关的字段,没有明确的规则,只是在出现特殊字符时,PARM 值必须包含在引号中。

例如,下面给出的值“CUST1000”作为字母数字值传递给程序。如果程序是 COBOL 程序,则通过 JCL 中的 PARM 参数传递的值将在程序的 LINKAGE SECTION 中接收。

ADDRSPC

这用于指定作业步骤是否需要虚拟存储或实际存储才能执行。虚拟存储是可分页的,而实际存储不可分页,并放置在主内存中执行。需要更快执行的作业步骤可以放在实际存储中。以下是语法

ADDRSPC=VIRT | REAL

当未编码 ADDRSPC 时,VIRT 是默认值。

ACCT

这指定作业步骤的会计信息。以下是语法

ACCT=(userid)

这类似于 JOB 语句中的位置参数 **会计信息**。如果它在 JOB 和 EXEC 语句中都进行了编码,则 JOB 语句中的会计信息将应用于所有未编码 ACCT 参数的作业步骤。EXEC 语句中的 ACCT 参数将仅覆盖 JOB 语句中针对该作业步骤的会计信息。

EXEC 和 JOB 语句的常用关键字参数

关键字参数 描述
ADDRSPC 在 JOB 语句中编码的 ADDRSPC 将覆盖在任何作业步骤的 EXEC 语句中编码的 ADDRSPC。
TIME 如果在 EXEC 语句中编码了 TIME,则它仅应用于该作业步骤。如果在 JOB 和 EXEC 语句中都指定了它,则两者都会生效,并且由于其中任何一个原因都可能导致超时错误。不建议同时在 JOB 和 EXEC 语句中使用 TIME 参数。
REGION

如果在 EXEC 语句中编码了 REGION,则它仅应用于该作业步骤。

在 JOB 语句中编码的 REGION 将覆盖在任何作业步骤的 EXEC 语句中编码的 REGION。

COND

用于根据前一步的返回码控制作业步骤的执行。

如果在作业步骤的 EXEC 语句中编码了 COND 参数,则忽略 JOB 语句中的 COND 参数(如果存在)。可以使用 COND 参数执行的各种测试在条件处理中进行了说明。

示例

以下是包含 JOB 和 EXEC 语句的 JCL 脚本的简单示例

//TTYYSAMP JOB 'TUTO',CLASS=6,MSGCLASS=X,REGION=8K,
//      NOTIFY=&SYSUID
//*
//STEP010 EXEC PGM=MYCOBOL,PARAM=CUST1000,
//      ACCT=(XXXX),REGION=8K,ADDRSPC=REAL,TIME=1440
广告
© . All rights reserved.