You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JCL中为数据集每行开头添加YYYYMMDD格式日期报错求助

解决DFSORT V2R4添加YYYYMMDD日期的报错问题

错误根源

DFSORT V2R4版本不支持CYMD这个日期格式关键字——CYMD是V2R5及后续版本才引入的语法,所以你的代码会在这个位置触发语法错误。

修正后的代码

方案1:保留完整原数据(输出LRECL改为308)

如果需要保留原300字节的所有内容,同时添加8位日期,需调整输出数据集的记录长度:

//STEP01 EXEC SORTDYN
//SYSIN DD *
    OPTION COPY
    OUTREC BUILD=(001:DATE,Y4T,10:001,300)
/*
//SORTIN   DD  DSN=FILE.TEST.WORK.SOME.FA,
//             DISP=SHR
//SORTOUT  DD  DSN=FILE.TEST.OUT.SOME.FA,
//             DISP=(MOD,CATLG),
//             SPACE=(CYL,(90,60),RLSE),VOL=(,,,9),
//             RECFM=FB,LRECL=308

方案2:保持输出LRECL=300(截断原数据末尾8字节)

如果必须维持输出记录长度为300字节,只能截断原数据的最后8字节:

//STEP01 EXEC SORTDYN
//SYSIN DD *
    OPTION COPY
    OUTREC BUILD=(001:DATE,Y4T,10:001,292)
/*
//SORTIN   DD  DSN=FILE.TEST.WORK.SOME.FA,
//             DISP=SHR
//SORTOUT  DD  DSN=FILE.TEST.OUT.SOME.FA,
//             DISP=(MOD,CATLG),
//             SPACE=(CYL,(90,60),RLSE),VOL=(,,,9),
//             RECFM=FB,LRECL=300

代码说明

  • DATE,Y4T:在DFSORT V2R4中,DATE调用系统当前日期,Y4T格式会将其转换为YYYYMMDD的8位无分隔符字符串,刚好占据输出记录的前8个字节。
  • 输出长度调整:原输入是300字节,添加8位日期后总长度为308,因此方案1中必须将SORTOUT的LRECL改为308;如果坚持300字节长度,方案2中只取原数据的前292字节,确保总长度匹配。

内容的提问来源于stack exchange,提问作者Bernd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:25:12