zoukankan      html  css  js  c++  java
  • 【Informatica PWC】如何利用copybook导入cobol,vsam文件

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

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

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

    copybook一般在cobol提供cobol文件时会提供的可以直接用记事本打开的ascii文件,内容如下面的橙色部分或test.cpy,

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

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

            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语句中的中划线在导入之后会被替换为下划线.

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

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

            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文件会有很多行,而且会有多个文件,

    例如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

     
  • 相关阅读:
    Python网络爬虫与信息提取(二)—— BeautifulSoup
    Linux文件系统概述
    XML简介
    JSON数据格式
    SQL*Loader之CASE8
    SQL*Loader之CASE9
    SQL*Loader之CASE10
    SQL*Loader之CASE11
    Oracle工具之DBNEWID
    Oracle常用函数汇总
  • 原文地址:https://www.cnblogs.com/dl-ekong/p/8492037.html
Copyright © 2011-2022 走看看