我有一个副本中的重定义子句,我必须使用发送过来的文件将其加载到oracle外部表中。下面是抄写本的信息。传入的文件是位置格式的,我假设在文件中的数据记录中,前8个字符是字母数字,接下来的8个字符是数字。我只需要知道我是否应该考虑总共16个字符,因为在这个字段之前和之后还有其他字段。
例如:
注册-DT PIC X(08)。注册-DT-N重新定义注册-DT PIC 9(08
发布于 2020-04-15 09:49:21
这两个字段总共允许8个字节。在本例中,重定义表示两个字段在记录中占据相同的位置。copybook允许您将字段视为字符串字段或文本字段
重新定义的另一个例子是
03 Birth-Date pic 9(8).
03 redefines Birth-Date.
05 Birth-year pic 9(4)
05 Birth-Month pic 99.
05 Birth-Day pic 99.这允许您以YYYYMMDD格式+单个年/月/日字段访问日期
Move 20180612 to Birth-Date然后
Birth-year = 2018
Birth-Month = 06
Birth-Day = 12同样,如果你这样做了
Move 2020 to Birth-year
Move 02 to Birth-Month
Move 21 to Birth-Day则出生日期=20200221
如果文件来自IBM Mainframe,则RecordEditor可以显示Cobol Copybook字段的位置/长度
在RecordEditor选项实用程序>>>显示Cobol Copybook Cobol copybook :

最后,cb2xml会将一个大型机的Cobol复制本转换为xml (带有Xml中的位置和长度)。
https://stackoverflow.com/questions/61212939
复制相似问题