【Informatica PWC】如何利用copybook导入cobol,vsam文件

cobol系统导出的数据集一般为vsam文件,没法用普通工具直接打开查看,app

为cobol文件建立源(source)时不能经过普通文件(flat file)的方式直接导入。ide

须要借助cobol文件格式描述文件(.cbl),里面包含cobol固定的格式段描述和copybook(包含源的字段类型长度和层组),工具

copybook通常在cobol提供cobol文件时会提供的能够直接用记事本打开的ascii文件,内容以下面的橙色部分或test.cpy,spa

在Mapping Designer->Source -> Import COBOL files中选中此描述文件才可导入cobol文件的源表(source).code

格式描述文件主体内容以下:orm

        identification division. 
        program-id.mead. 
        environment division. 
        select file-1 assign to "fname". 
        data division. 
        file section. 
        fd FILE-1. 
        * --------COPYBOOK GOES HERE------- 
        procedure division. 
        stop run.
identification division 标识部
environment division 环境部
data division 数据部
procedure division 过程部
file-1 为导入后的source name 中划线-将被被替换为下划线_
file section 文件节
*----copybook 此处用实际copy句替换掉
stop run. 描述文件终止结束运行

注意:每行前八位为空格 结尾为英文句号,copy语句中的中划线在导入以后会被替换为下划线.blog

第八行注释,经过copy句或copybook替换掉,例如test.cblci

橙色为copy句或者copybook,此文件能够把橙色替换为实际的copy句以后直接导入.get

        Identification division. 
        Program-id.mead. 
        environment division. 
        select cr3872-file assign to "cr3872.dat". 
        organization sequential. 
        data division. 
        file section. 
        fd cr3872-file. 
        01 EXPERT. 
        05 SPOUSE-CHILD. 
        10 SPOUSE-INFO. 
        15 SP-CHILD 
        PIC X. 
        15 SPOUSE-NAME. 
        20 SPOUSE-FNAME 
        PIC X(14). 
        20 SPOUSE-LNAME 
        PIC X(20). 
        10 CHILD-INFO OCCURS 6 TIMES. 
        15 CHILD-NAME. 
        20 CHILD-FNAME 
        PIC X(14). 
        20 CHILD-LNAME 
        PIC X(20). 
        15 CHILD-RELATIONSHIP 
        PIC X(15). 
        15 CHILD-BDATE PIC 9(6). 
        15 CHILD-AGE PIC 9(2). 
        working-storage section. 
        01junk PIC x(100). 
        procedure division. 
        stop run.

可是,实际应该用中的copy句或者copybook文件会有不少行,并且会有多个文件,it

例如test.cpy(从第8列到第74列才为真正的数据部)

00550001 EXPERT. 
099500 05 SPOUSE-CHILD. 
099600 10 SPOUSE-INFO. 
099700 15 SP-CHILD 
099800 PIC X. 
099900 15 SPOUSE-NAME. 
100000 20 SPOUSE-FNAME 
100100 PIC X(14). 
100400 20 SPOUSE-LNAME 
100500 PIC X(20). 
105600 10 CHILD-INFO OCCURS 6 TIMES. 
105700 15 CHILD-NAME. 
105800 20 CHILD-FNAME 
105900 PIC X(14). 
106100 20 CHILD-LNAME 
106200 PIC X(20). 
106300 15 CHILD-RELATIONSHIP 
106400 PIC X(15). 
106500 15 CHILD-BDATE PIC 9(6). 
106700 15 CHILD-AGE PIC 9(2).

这样咱们能够改写以前的数据描述文件test.cbl 为以下:

        environment division. 
        select cr3872-file assign to "cr3872.dat" 
        organization sequential. 
        data division. 
        file section. 
        fd cr3872-file. 
        copy"test.cpy". 
        working-storage section. 
        01 junk PIC x(100). 
        procedure division. 
        stop run. 
        end.

 

copy"test.cpy". 引用copybook

如此,把test.cbl 和test.cpy放在同一目录,经过这两个文件能够建立cobol文件的源(source)了。
test.cbl

test.cpy

cobol file source

 

 

 本文参考引用了以下连接:

https://kb.informatica.com/whitepapers/1/Pages/15301.aspx

https://kb.informatica.com/whitepapers/1/Pages/15159.aspx