使用JCL在PDS中创建成员失败,报DD DUMMY语句未知关键字错误
问题描述
尝试在已有的PDS中创建成员,但持续收到错误提示:UNIDENTIFIED KEYWORD ON THE DD DUMMY STATEMENT。使用的JCL代码如下:
... //PASO1 EXEC PGM=IEBGENER //SYSUT1 DD DUMMY,RECFM=FB,LRECL=80 //SYSUT2 DD DSN=MBVT.APPLICBC.PRUEBA4(TEST1),DISP=(SHR) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //
查阅大量资料,看到很多文档及视频中使用相同代码可成功运行,但测试却失败,请问哪里操作有误?
问题原因及解决方法
- 错误原因:
DUMMY是虚拟数据集关键字,DD语句中使用DUMMY后,不能再指定RECFM、LRECL这类数据集属性关键字,这违反了JCL的语法规范,因此系统抛出“未识别关键字”的错误。 - 修正后的JCL:若要创建空的PDS成员,正确写法如下:
... //PASO1 EXEC PGM=IEBGENER //SYSUT1 DD DUMMY //SYSUT2 DD DSN=MBVT.APPLICBC.PRUEBA4(TEST1),DISP=(NEW,CATLG,DELETE), // RECFM=FB,LRECL=80,SPACE=(TRK,(1,1)) //SYSPRINT DD SYSOUT=* //SYSIN DD DUMMY //
- 关键说明:
- 移除
SYSUT1中DUMMY后的所有属性参数,虚拟数据集不需要这些配置。 - 将
SYSUT2的DISP从SHR改为(NEW,CATLG,DELETE),创建新成员需要NEW参数(若成员已存在可改用MOD),同时在SYSUT2中指定目标数据集的RECFM、LRECL和SPACE属性,这些是PDS成员的必要配置。 - 部分环境对语法检查较宽松,允许
DUMMY后带属性,但这不符合标准JCL规范,你的环境严格执行语法检查时就会报错。
- 移除
内容的提问来源于stack exchange,提问作者Juan
相关产品推荐
相关产品推荐

