COBOL到SQL表的创建

时间:2013-11-05 09:05:25

标签: sql cobol gnucobol

我们正在尝试将数据加载到SQL Server。所以任何人都可以为下面提到的布局建议适当的表格架构。

 01  PRECALC.                                                             
     06 NEWGROUP57.                                                       
        10  PRE-MODIFY-TYPE PIC X.                                        
        10  PRE-HMO-ID PIC X(3).                                          
        10  PRE-SC-CAP PIC X(1).                                          
        10  PRE-ENTRY-SOURCE PIC X(1).                                    
        10  PRE-DIV-NBR PIC 9(2).                                         
     06  PRE-MEMB-NBR.                                                    
        10  PRE-MEMGRP PIC 9(5).                                          
        10  PRE-MEMSUB PIC 9(9).                                          
        10  PRE-MEMDEP PIC 9(2).                                          
     06 NEWGROUP58.                                                       
        10  PRE-CTLNBR PIC 9(12).                                         
        10  PRE-AUDNBR PIC 9(8).                                          
        10  PRE-AUDSUB PIC 9(2).                                                                                
        10  PRE-DSLW-CONT PIC S9(5)V9(2)      DISPLAY SIGN                
                                              LEADING SEPARATE.           
        10  PRE-RECV-CYMD PIC 9(8).                                       
        10  PRE-SYS-CYMD PIC 9(8).                                        
     06  PRE-DETAIL-AREA.                                                 
        07  PRE-DTL-DATA-EXP.                                             
           10  Z-PRE-DTL-DATA PIC X(1068).                                
        07  PRE-DTL-DATA REDEFINES PRE-DTL-DATA-EXP                       
                   OCCURS 4.                                              
           08 NEWGROUP59-1.                                               
              11  PRE-ICDA-CDE PIC X(5).                                  
              11  PRE-PROC PIC X(5).                                      
              11  PRE-PROC-MOD PIC X(4).                                                                 
           08 NEWGROUP59-2.                                               
              11  PRE-AMT-CLAIMED PIC S9(5)V9(2) DISPLAY SIGN             
                                              LEADING SEPARATE.           
              11  PRE-AMT-COPAY PIC S9(5)V9(2) DISPLAY SIGN               
                                              LEADING SEPARATE.           
              11  PRE-AMT-DISCOUNT PIC S9(5)V9(2) DISPLAY SIGN            
                                              LEADING SEPARATE.           
           08 NEWGROUP59-3.                                               
              11  PRE-EPSDT-IND PIC X(1).                                 
              11  PRE-NDC-ID PIC X(11).                                   
              11  PRE-ORIG-POS-CDE PIC X(2).                                               
           08 NEWGROUP59-4.                                               
              11  PRE-ALLOW-AMT-RPR PIC S9(5)V9(2) DISPLAY SIGN           
                                              LEADING SEPARATE.           
     06  PRE-DSIERR.                                                      
        07  PRE-DSI-ERR-EXP.                                              
           10  Z-PRE-DSI-ERR PIC X(100).                                  
        07  PRE-DSI-ERR REDEFINES PRE-DSI-ERR-EXP                         
                   OCCURS 100  PIC 9(1). 




06 NEWGROUP60.                                                       
    10  PRE-PAYOR-INFO PIC X(1).                                      
    10  PRE-RECOVERY-FLG PIC X(1).                                    
    10  PRE-RECV-MDCY PIC 9(8).                                       
    10  PRE-SYS-MDCY PIC 9(8).                                        
    10  PRE-PRV-TAX-ID PIC X(9).                                       
 06  PRE-RPR-DTL-RJMSG-EXP.                                           
    10  Z-PRE-RPR-DTL-RJMS PIC X(8).                                  
 06  PRE-RPR-DTL-RJMSG REDEFINES PRE-RPR-DTL-RJMSG-EXP                
            OCCURS 4  PIC X(2).                                       
 06  PRE-RPR-DTL-RSNCD-EXP.                                           
    10  Z-PRE-RPR-DTL-RSNC PIC X(16).                                 
 06  PRE-RPR-DTL-RSNCD REDEFINES PRE-RPR-DTL-RSNCD-EXP                
            OCCURS 4  PIC X(4).  

1 个答案:

答案 0 :(得分:1)

似乎OP已经离开了,但是这里有一些一般的建议就是其他人偶然发现了这一点。

作为一个起点,制作出现或重新定义另一个项目的任何东西都有自己的表格。可能所有的06级都可以是一个功能清晰的表,但这会给你大量的表,每个表都有一行来自源记录,这是低效的。

像这样的一些项目:

06  PRE-RPR-DTL-RSNCD-EXP.                                           
    10  Z-PRE-RPR-DTL-RSNC PIC X(16).  

只是重新定义的目标,可能不需要自己存储。但是,有些与重新定义的大小不同,因此您需要知道实际上是否需要该数据。

请注意,放入单独表格中的较低级别将需要外键来标识父级。并且所有06派生的表都需要一个公共密钥来链接它们,因为它们来自相同的源记录。

正如@cschneid上面所说,如果你不考虑实际的要求/用法,你最终会得到一个糟糕的数据库设计。您开始使用COBOL文件记录布局,而不是数据库设计。


注:根据Bill Woodger的有用评论进行修订