我正在尝试破解这个JCL,想知道出了什么问题。
这是我的代码:
000001 //SORTJCL JOB
000002 //SORTSTEP EXEC PGM=SORT
000003 //SYSOUT DD SYSOUT=*
000004 //SORTOUT DD SYSOUT=*
000005 //SORTWK01 DD SPACE=(CYL,(1,1))
000006 //SORTIN DD DISP=SHR,DSN=Y2015.PUBLIC.DATA(AREACODE)
000007 //SYSIN DD *
000008 SORT FIELDS=(6,10,CH,A)
000009 // IF RC = 0 THEN
000010 //COPYSTEP EXEC PGM=ICEGENER
000011 //SYSUT1 DD DISP=SHR,DSN=Y2015.PUBLIC.DATA($005)
000012 //SYSUT2 DD DISP=SHR,DSN=&SYSUID..P2.OUTPUT($005)
000013 //SYSOUT DD SYSOUT=*
000014 //SYSPRINT DD SYSOUT=*
000015 //SYSIN DD DUMMY
000016 // ELSE
000017 // ENDIF 此代码的目的-读取Y2015.PUBLIC.DATA(AREACODE)并对其进行排序,并将输出复制并写入MYID.P2.OUTPUT($005)
谁能给我解释一下我漏掉了什么?
发布于 2016-01-10 02:20:58
要"read and sort Y2015.PUBLIC.DATA(AREACODE)",您已经在第000006行的第一个作业步骤中使用了正确的//SORTIN。读取和排序的结果被写入到//SORTOUT,在您的JCL中,它似乎被写入到SYSOUT=* (假脱机),在第000003行。
但这不是你应该做的(根据你的"copy and write the output into MYID.P2.OUTPUT($005)")。因此,您必须像这样修改000003行:
000003 //SYSOUT DD DISP=SHR,DSN=&SYSUID..P2.OUTPUT($005)应用此更改后,还必须删除与第二个jobstep相关的所有内容(因此从第000009行开始,以及该行后面的所有内容)。
如果出于任何原因,您仍然希望所有这些行都继续包含在此JCL中,则只需在第000009行之前插入一个新行,如下所示:
000009 //这将导致后面的所有剩余JCL行都被忽略。
https://stackoverflow.com/questions/34192394
复制相似问题