2

我刚刚开始使用 COBOL,并在 JCL 中遇到了这个问题......如何从我的 PDS 编译一个基本的 cobol 程序,我知道通过流内它只是

//SYSIN DD * code code code /*

我尝试了类似的东西

//SYSIN DD DSN=the.pds.location(file),DISP=SHR

但我认为所有的回击都是垃圾和返回码 12。

如果有人可以提供帮助,我将不胜感激。

4

1 回答 1

3

根据您发布的信息,您的 JCL 应该可以工作。也许你错过了别的东西。以下 JCL 提供了执行 COBOL 编译的完整作业步骤:

    ... your job card goes here...
    //COB     EXEC PGM=IGYCRCTL
    //STEPLIB  DD DISP=SHR,DSN=SYSP.IGY.V3R4M1.SIGYCOMP
    //SYSUT1   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT2   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT3   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT4   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT5   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT6   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSUT7   DD UNIT=SYSDA,SPACE=(CYL,(1,1))
    //SYSLIN   DD DSN=objectmodule,UNIT=SYSDA,
    //            DISP=(MOD,PASS),SPACE=(TRK,(3,3))
    //SYSIN    DD DSN=the.pds.location(file),DISP=SHR
//SYSPRINT DD SYSOUT=* ... your link step using object from SYSLIN above...
注意:您可能必须更改 STEPLIB 以匹配在您的站点上运行的 COBOL 版本。

如果您的 JCL 看起来与上述非常接近,那么接下来要检查的是您的 COBOL 程序。进入 ISPF 编辑器(我假设您可以访问它)并在命令行上键入PROFILE 。您应该会看到如下内容:

   =PROF> ....GEN (FIXED - 80)....RECOVERY OFF WARN....NUMBER OFF.................
   =PROF> ....CAPS ON....HEX OFF....NULLS ON STD....TABS OFF......................
   =PROF> ....AUTOSAVE ON....AUTONUM OFF....AUTOLIST OFF....STATS ON..............
   =PROF> ....PROFILE UNLOCK....IMACRO NONE....PACK OFF....NOTE ON................
   =PROF> ....HILITE OFF CURSOR FIND..............................................
   =BNDS> <
=COLS> ----+----1----+----2----+----3----+----4----+----5----+----6----+----7--

现在看看PACK ON(注意上面显示 PACK OFF)。如果您发现 PACK ON,这就是您的问题。您需要发出PACK OFF命令并保存数据集。再次尝试编译。

顺便说一句...您可以通过在命令行上键入RESET来摆脱配置文件显示。

如果这些都不能解决您的问题,您需要提供有关问题的确切性质的更多信息。

于 2010-02-03T16:29:55.353 回答