是否需要在我的 JCL 中指定所有文件?

Do all files need to be specified in my JCL?

我目前正在开发一个在多个 JCL 中使用的程序。我添加了一个新文件,文件控件如下所示:

SELECT  FILEA          ASSIGN TO  FILEA
        ; ORGANIZATION SEQUENTIAL         
        ; ACCESS       SEQUENTIAL         
        ; FILE STATUS  FILEA-FILESTATUS  
.    

因为这个程序在多个JCL中使用,如果文件必须存在于所有JCL中,这意味着我需要在很多地方虚拟文件。我希望只在特定条件下打开文件,而不需要在所有地方都将其虚拟化。

如果我不对文件执行打开操作,它在我的 JCL 中是否仍需要 DD 名称?

编辑:我 运行 在 IBM 大型机上。

就 IBM 的大型机 COBOL 而言:不,如果您从不 OPEN 该文件,则不需要 DD 语句。您也可以尝试打开它并查看生成的 FILE-STATUS 以查看文件是否存在,如果不存在则采取适当的措施。

有时 COBOL 甚至可能在打开时分配丢失的文件。在语言环境下,行为由 运行time-option CBLQDA 的值决定:如果它是 ON COBOL 将自动分配任何为输出而打开但未在 JCL 中定义的文件(并在程序有 运行 因此丢弃了写入该文件的所有数据)。