ホスト互換性オプションには、既存の SQL テーブルの DDL、または COBOL、PL/I 、または C 構文に含まれるテーブルのコピーブックを生成するツールがあります。
DCLGEN ツールは、DB2 LUW 用の HCO ユーザー インターフェイス、または mfhco dclgen コマンドを使用して (Windows プラットフォームのみ) から実行できます。
コピーブック ファイルの DECLARE TABLE 部分は、次のようになります。
************************************************************ * MFHCODCL OPTIONS: * DATABASE : DB2DEMO * SCHEMA : DEMO * PREFIX : TABLE NAME ************************************************************ EXEC SQL DECLARE DEMO.ITEMS TABLE ( ORD_NO INTEGER NOT NULL ,ITEM_NO SMALLINT NOT NULL ,PROD_ID CHAR(4) ,QTY_ORDERED SMALLINT NOT NULL WITH DEFAULT ,QTY_SHIPPED SMALLINT NOT NULL WITH DEFAULT ,AMT_EACH DECIMAL(7, 2) NOT NULL WITH DEFAULT ,DATE_ENTERED TIMESTAMP NOT NULL WITH DEFAULT ,DATE_SHIPPED DATE ,ITEM_NOTES VARCHAR(560) ) END-EXEC.
コピーブック ファイルの COBOL DECLARATION 部分は、次のようになります。
************************************************************ * COBOL DECLARATION FOR TABLE DEMO.ITEMS ************************************************************ 01 DCLITEMS. 10 ITEMS-ORD-NO PIC S9(09) COMP. 10 ITEMS-ITEM-NO PIC S9(04) COMP. 10 ITEMS-PROD-ID PIC X(4). 10 ITEMS-QTY-ORDERED PIC S9(04) COMP. 10 ITEMS-QTY-SHIPPED PIC S9(04) COMP. 10 ITEMS-AMT-EACH PIC S9(05)v9(02) COMP-3. 10 ITEMS-DATE-ENTERED PIC X(26). 10 ITEMS-DATE-SHIPPED PIC X(10). 10 ITEMS-ITEM-NOTES. 49 ITEMS-ITEM-NOTES-LEN PIC S9(04) COMP. 49 ITEMS-ITEM-NOTES-TEXT PIC X(560). ************************************************************ * COBOL INDICATOR VARIABLES FOR TABLE ************************************************************ 01 DCLITEMS-NULL. 10 ITEMS-PROD-ID-NULL PIC S9(04) COMP. 10 ITEMS-DATE-SHIPPED-NULL PIC S9(04) COMP. 10 ITEMS-ITEM-NOTES-NULL PIC S9(04)COMP. ************************************************************ * THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 9 ************************************************************
コピーブック ファイルの COBOL DECLARATION 部分は、次のようになります。
************************************************************ * COBOL DECLARATION FOR TABLE DEMO.ITEMS ************************************************************ 01 DCLITEMS. 10 HV-ORD-NO PIC S9(09) COMP. 10 HV-ITEM-NO PIC S9(04) COMP. 10 HV-PROD-ID PIC X(4). 10 HV-QTY-ORDERED PIC S9(04) COMP. 10 HV-QTY-SHIPPED PIC S9(04) COMP. 10 HV-AMT-EACH PIC S9(05)v9(02) COMP-3. 10 HV-DATE-ENTERED PIC X(26). 10 HV-DATE-SHIPPED PIC X(10). 10 HV-ITEM-NOTES. 49 HV-ITEM-NOTES-LEN PIC S9(04) COMP. 49 HV-ITEM-NOTES-TEXT PIC X(560). ************************************************************ * COBOL INDICATOR VARIABLES FOR TABLE ************************************************************ 01 DCLITEMS-IND. 10 HV-PROD-ID-IND PIC S9(04) COMP. 10 HV-DATE-SHIPPED-IND PIC S9(04) COMP. 10 HV-ITEM-NOTES-IND PIC S9(04) COMP. ************************************************************ * THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 9 ************************************************************
コピーブック ファイルの COBOL DECLARATION 部分は、次のようになります。
************************************************************ * COBOL DECLARATION FOR TABLE DEMO.ITEMS ************************************************************ 01 DCLITEMS. 10 FIELD-001 PIC S9(09) COMP. 10 FIELD-002 PIC S9(04) COMP. 10 FIELD-003 PIC X(4). 10 FIELD-004 PIC S9(04) COMP. 10 FIELD-005 PIC S9(04) COMP. 10 FIELD-006 PIC S9(05)v9(02) COMP-3. 10 FIELD-007 PIC X(26). 10 FIELD-008 PIC X(10). 10 FIELD-009. 49 FIELD-009-LEN PIC S9(04) COMP. 49 FIELD-009-TEXT PIC X(560). ************************************************************ * COBOL INDICATOR VARIABLES FOR TABLE ************************************************************ 01 DCLITEMS-NULL. 10 FIELD-003-NULL PIC S9(04) COMP. 10 FIELD-008-NULL PIC S9(04) COMP. 10 FIELD-009-NULL PIC S9(04) COMP. ************************************************************ * THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 9 ************************************************************
コピーブック ファイルの DECLARE TABLE 部分は、次のようになります。
/*-------------------------------------------------------*/ /* MFHCODCL OPTIONS: */ /* DATABASE : DB2DEMO */ /* SCHEMA : DEMO */ /* PREFIX : TABLE NAME */ /*-------------------------------------------------------*/ EXEC SQL DECLARE DEMO.ITEMS TABLE ( ORD_NO INTEGER NOT NULL, ITEM_NO SMALLINT NOT NULL, PROD_ID CHAR(4), QTY_ORDERED SMALLINT NOT NULL WITH DEFAULT, QTY_SHIPPED SMALLINT NOT NULL WITH DEFAULT, AMT_EACH DECIMAL(7, 2) NOT NULL WITH DEFAULT, DATE_ENTERED TIMESTAMP NOT NULL WITH DEFAULT, DATE_SHIPPED DATE, ITEM_NOTES VARCHAR(560) );
コピーブック ファイルの PL/I DECLARATION 部分は、次のようになります。
/*-------------------------------------------------------*/ /* PL/I DECLARATION FOR TABLE DEMO.ITEMS */ /*-------------------------------------------------------*/ DECLARE 1 DCLITEMS, 5 ITEMS_ORD_NO BIN FIXED(31), 5 ITEMS_ITEM_NO BIN FIXED(15), 5 ITEMS_PROD_ID CHAR(4), 5 ITEMS_QTY_ORDERED BIN FIXED(15), 5 ITEMS_QTY_SHIPPED BIN FIXED(15), 5 ITEMS_AMT_EACH DEC FIXED(5,2), 5 ITEMS_DATE_ENTERED CHAR(26), 5 ITEMS_DATE_SHIPPED CHAR(10), 5 ITEMS_ITEM_NOTES CHAR(560) VAR; /*-------------------------------------------------------*/ /* PL/I INDICATOR VARIABLES FOR TABLE */ /*-------------------------------------------------------*/ DECLARE 1 DCLITEMS_NULL, 5 ITEMS_PROD_ID_NULL BIN FIXED(15), 5 ITEMS_DATE_SHIPPED_NULL BIN FIXED(15), 5 ITEMS_ITEM_NOTES_NULL BIN FIXED(15); /*-------------------------------------------------------*/ /* THE NO. OF COLUMNS DESCRIBED BY THIS DECLARATION IS 9*/ /*-------------------------------------------------------*/
/*-------------------------------------------------------*/ /* MFHCODCL OPTIONS: */ /* DATABASE : DB2DEMO */ /* SCHEMA : DEMO */ /* PREFIX : TABLE NAME */ /* C HOST VARIABLES FOR TABLE DEMO.ITEMS */ /*-------------------------------------------------------*/ EXEC SQL BEGIN DECLARE SECTION; struct dclitems { long items_ord_no; short items_item_no; char items_prod_id[4]; short items_qty_ordered; short items_qty_shipped; double items_amt_each; char items_date_entered[26]; char items_date_shipped[10]; struct { short len char data[560]; } items_item_notes; /*-------------------------------------------------------*/ /* C INDICATOR VARIABLES FOR TABLE */ /*-------------------------------------------------------*/ short items_prod_id_null; short items_date_shipped_null; short items_item_notes_null; }; EXEC SQL END DECLARE SECTION; /*-------------------------------------------------------*/ /* THE NO. OF COLUMNS DESCRIBED BY THIS DECLARATION IS 9*/ /*-------------------------------------------------------*/