我在git https://github.com/tmalaska/CopybookInputFormat/上使用 CopybookInputFormat 来从COBOL copybook生成hive表定义。我的字帖有很多填料(重复列) 但看起来JRecord没有正确处理重复的列名。 对于下面的字帖,当我迭代列时,JRecord只打印第二个填充并忽略第一个填充。
05 Birth-day PIC X(002)
05 Filler PIC X(008)
05 Birth-Month PIC X(002)
05 Filler PIC X(008)
05 Birth-year PIC X(004)
有没有人对此有任何解决方案?我知道 JRecord 0.80.6 以后正在处理重复的列,但方法getUniqueField("FIRST-NAME", "PRESIDENT")
需要一个组名..但是如果组有重复的列呢?
答案 0 :(得分:3)
您不需要导入填充程序。在Cobol中,无法直接访问填充程序。在Cobol中,填充程序说忽略此字段(或通过其他方法访问它)。
Cobol-Copybook就像是一块内存的掩码;填充符用于跳过一些内存。
Data !##........##........## (# - accessible bytes; . - inaccessible bytes)
^ ^ ^
! ! !
Birth-day ---+ ! !
Filler ! !
Birth-Month -------------+ !
Filler !
Birth-year -----------------------+
填料可用于:
05 report-Birth-date 10 dd pic 99. 10 filler pic '/'. 10 mm pic 99. 10 filler pic '/'. 10 yyyy pic 9999.
05 codes. 10 code occurs 5 pic 99. 05 filler redefines codes pic x(10) value '0204050612'.
我会问 Cobol专家你工作 发生了什么 ???可能的答案可能是: