我一直收到JCL代码的错误,我不知道为什么

时间:2014-10-07 00:49:44

标签: jcl

//BJCL1804 JOB 1,NOTIFY=&SYSUID
//SORT01 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SORTIN DD DISP,SHR,DSN=ZOS.PUBLIC.DATA(ASCII)
//SORTOUT DD SYSOUT=*
//SYSIN DD SYSIN=*
//SORT DD =(1,1,CH,A)

我正在尝试使用此JCL代码,当我使用SUB命令时,我总是收到错误。即使经过几个小时的尝试和尝试,我似乎无法解决这个错误。我查找了= SD的错误代码,我无法弄清楚如何解决问题。语法似乎是正确的。我只是不明白。有人可以帮我理解为什么会导致错误吗?

3 个答案:

答案 0 :(得分:1)

你有两个错误:

//SORTIN DD DISP,SHR,DSN=ZOS.PUBLIC.DATA(ASCII)

这应该是" DISP = SHR",而不是" DISP,SHR"

//SYSIN DD SYSIN=*
//SORT DD =(1,1,CH,A)

这应该是:

//SYSIN DD SYSIN=*
SORT FIELDS=(1,1,CH,A)

SYSIN = *正在使用排序控制语句创建一个instream临时数据集。另外,我认为你需要像" SORT FIELDS =(1,1,CH,A)和#34;

答案 1 :(得分:0)

//SYSIN DD SYSIN=*

语法不正确。我相信你想要

//SYSIN DD *

和SORT控制语句不以//开头,这是导致IEFC641I错误的原因。

文档是你的朋友。

答案 2 :(得分:0)

//BJCL1804 JOB 1,NOTIFY=&SYSUID
//SORT01 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SORTIN DD DISP,SHR,DSN=ZOS.PUBLIC.DATA(ASCII)
//SORTOUT DD SYSOUT=*
//SYSIN DD SYSIN=*
//SORT DD =(1,1,CH,A)

您的JOB声明的格式应与您网站上其他开发者的格式相同。那个“1”,看起来错了,但是因为肯定肯定没有帮助,所以我不打算检查。 JCL参考会告诉您。

您不需要进行SORT步骤的SYSPRINTSYSUDUMP,尽管您可能应该在自己的网站上使用它们,即使这些步骤毫无意义。

正如已经指出的那样,您的SYSIN DD不正确。您不能只遵循不同类型的DD语句的格式,并希望最好。它应该是:

//SYSIND DD *

*表示“数据流数据”而非命名数据集。

排序控制卡不以//开头,并且至少以一个空格开头。

如果您尝试对文件进行排序,它将如下所示:

 SORT FIELDS=(1,1,CH,A)