如何解决添加月但参数来自数据JCL
我有这样的数据
----+----1----+----2----+----3----+--
000000002320110328087YY01200000020124
我想add the months
来自 column 11-18,with the value from 24-26
我在想 outrec 字段是这样的
11,8,Y4T,ADDMONS,24,3,TOGREG=Y4T(-)
但是当我尝试它时,它给出了 rc=0016,因为操作数错误,
我正在考虑将 24,3 的值存储到一个变量中,然后将其放入变量中,但我不知道 JCL 是否可以提供该值.. 任何人都可以提供帮助?
并且我不想对其进行硬编码,因为我已经尝试了 11,+12,TOGREG=Y4T(-),它可以工作,但如果可以,我想用值替换“+12”来自第 24-26 列
解决方法
您案例中 ADDMONS
的语法图如下所示:
p,m,Y4T,ADDMONS,p,f,TOGREG=Y4T(-)
您缺少 f
子参数。由于要添加的月份数是一系列数字,因此格式为 UFF
。我运行了这样的工作:
//SORT#010 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SORTIN DD *
000000002320110328087YY01200000020124
/*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
SORT FIELDS=COPY
OUTREC FIELDS=(11,8,24,3,UFF,TOGREG=Y4T(-))
/*
SORTOUT 中的结果是:
2012-03-28
这是你想要的吗?
,我不知道用普通 DFSORT 来做到这一点的方法。
例如 PARSE 将不起作用,因为它无法解析 %2
:
INREC PARSE=(%1=(ABSPOS=11,FIXLEN=8),%2=(ABSPOS=24,FIXLEN=3)),BUILD=(%1,+%2,TOGREG=Y4T(-))
如果您想使用 DFSORT,您可能需要查看 sort exits。
,你得到一个错误的返回码,因为 DFSORT 不知道如何解释你用 24,3 给它的三个字节。
你应该使用:11,ZD,TOGREG=Y4T(-)
我插入的 ZD 表示:分区十进制。它对应于 Cobol 中的 PIC 9 USAGE DISPLAY
。
您可以用 PD 解释 COMP-3,用 BI 解释 COMP-5 或 BINARY。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。