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.
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))
//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 ******************************************************************