Generate DB2 table definition COPYBOOK

14 篇文章 0 订阅
3 篇文章 0 订阅


When accessing DB2 table in a COBOL program, usually we need know the table definition COPYBOOK.
Utility DCLGEN could be used to generate this COPYBOOK file.

For example: when table was defined as:
CREATE TABLE TESTTAB(COLA INT, COLB CHAR(10))

JCL JOB

//GENTBCPY JOB (DSNTEP4),'GENTBCPY',REGION=0M,CLASS=2,MSGCLASS=X,
//             NOTIFY=&SYSUID
//*=============================================================
//*========GENERATE COPYBOOK FOR DB2 TABLE USING DCLGEN=========
//*=============================================================
//STEPGEN  EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB  DD DSN=DSN910.SDSNEXIT,DISP=SHR
//         DD DSN=DSN910.SDSNLOAD,DISP=SHR
//         DD DSN=DSN910.RUNLIB.LOAD,DISP=SHR
//         DD DSN=<DSN>.SDSNEXIT,DISP=SHR
//SYSTSIN  DD *
  DSN SYS(<DSN>)
  DCLGEN TABLE(TESTTAB) -
    LIBRARY('<UID>.<TARGET>.<PDS>.COPY(TESTTAB)') -
    ACTION(REPLACE) -
    APOST -
    LANGUAGE(IBMCOB) -
    STRUCTURE(TESTTAB-RECORD)
  END
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN    DD DUMMY

After job execution finished, you can find the generated COPYBOOK in PDS: <UID>.<TARGET>.<PDS>.COPY
This COPYBOOK can later be used directly in COBOL program through:
    EXEC SQL INCLUDE TESTTAB  END-EXEC.

The content of COPYBOOK TESTTAB may like:

 000001       ******************************************************************
 000002       * DCLGEN TABLE(TESTTAB)                                          *
 000003       *        LIBRARY(<UID>.<TARGET>.<PDS>.COPY(TESTTAB))               *
 000004       *        ACTION(REPLACE)                                         *
 000005       *        LANGUAGE(COBOL)                                         *
 000006       *        STRUCTURE(TESTTAB-RECORD)                               *
 000007       *        APOST                                                   *
 000008       * ... IS THE DCLGEN COMMAND THAT MADE THE FOLLOWING STATEMENTS   *
 000009       ******************************************************************
 000010            EXEC SQL DECLARE TESTTAB TABLE                              
 000011            ( COLA                           INTEGER,                    
 000012              COLB                           CHAR(10)                    
 000013            ) END-EXEC.                                                  
 000014       ******************************************************************
 000015       * COBOL DECLARATION FOR TABLE TESTTAB                            *
 000016       ******************************************************************
 000017        01  TESTTAB-RECORD.                                              
 000018            10 COLA                 PIC S9(9) USAGE COMP.                
 000019            10 COLB                 PIC X(10).                          
 000020       ******************************************************************
 000021       * THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 2       *
 000022       ******************************************************************



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值