これらの例を使用すると、COBOL および PL/I の配列定義を理解するのに役立ち、表およびビューを正確にマップすることができます。
データ・サーバーにリレーショナル表またはビューを作成するとき、Classic Data Architect は、COBOL サンプル集または PL/I インクルード・ファイルに含まれているデータ定義を使用して、データ定義言語 (DDL) を生成します。次に、データ・サーバーで DDL を実行して、メタデータ・カタログにユーザー表を作成します。
例: 固定長配列の COBOL 定義。
01 EMPLOYEE-RECORD. 05 EMP-LAST-NAME PIC X(20). 05 EMP-FIRST-NAME PIC X(20). 05 EMPID PIC 9(9). .... 05 DEPENDENTS-ARRAY OCCURS 20 TIMES 10 DEP-ID PIC 9(9). 10 DEP-NAME PIC X(20). 10 DEP-DOB PIC 9(6). 10 DEP-RELATIONSHIP-TO-EMPL PIC X.
例: 可変長配列の COBOL 定義。
01 EMPLOYEE-RECORD. 05 EMP-LAST-NAME PIC X(20). 05 EMP-FIRST-NAME PIC X(20). 05 EMP-ID PIC 9(9). .... 05 NUMBER-OF-DEPENDENTS PIC 9(4) COMP. 05 DEPENDENTS-ARRAY OCCURS 1 TO 20 TIMES DEPENDING ON NUMBER-OF-DEPENDENTS. 10 DEP-SSN PIC 9(9). 10 DEP-NAME PIC X(20). 10 DEP-DOB PIC 9(6). 10 DEP-GENDER PIC X.
例: COBOL サンプル集に基づいた CREATE TABLE ステートメント。
DDL は以下のデータ項目のサブセットをマップします。
CREATE TABLE CAC.EMPL .....
( EMP_ID SOURCE DEFINITION DATAMAP OFFSET 40 LENGTH 9 DATATYPE C USE AS CHAR(9), NUMBER_OF_DEPENDENTS SOURCE DEFINITION DATAMAP OFFSET 49 LENGTH 2 DATATYPE H USE AS SMALLINT, BEGINLEVEL 1 OFFSET 51 LENGTH 36 OCCURS 20 DEPENDING ON COLUMN NUMBER_OF_DEPENDENTS, DEP_ID SOURCE DEFINITION DATAMAP OFFSET 0 LENGTH 9 DATATYPE C USE AS CHAR(9), DEP_NAME SOURCE DEFINITION DATAMAP OFFSET 9 LENGTH 20 DATATYPE C USE AS CHAR(20), ENDLEVEL 1 )
例: 従業員レコードを記述する PL/I インクルード・ファイル。
DCL 1 EMPLOYEE_RECORD BASED,
5 EMP_LAST_NAME CHAR(20),
5 EMP_FIRST_NAME CHAR(20),
5 EMPID PIC '(9)9',
....
5 DEPENDENTS_ARRAY DIM(20)
10 DEP_ID PIC '(9)9',
10 DEP_NAME CHAR(20),
10 DEP_DOB PIC '(6)9',
10 DEP_RELATIONSHIP_TO_EMPL CHAR(1);
例: 可変長配列を定義する PL/I インクルード・ファイル。
DCL 1 EMPLOYEE_RECORD BASED, 5 EMP_LAST_NAME CHAR(20), 5 EMP_FIRST_NAME CHAR(20), 5 EMPID PIC '(9)9', .... 5 NUMBER_OF_DEPENDENTS BIN FIXED(15), 5 DEPENDENTS_ARRAY DIM(N1 REFER(NUMBER_OF_DEPENDENTS)), 10 DEP_ID PIC '(9)9', 10 DEP_NAME CHAR(20), 10 DEP_DOB PIC '(6)9', 10 DEP_RELATIONSHIP_TO_EMPL CHAR(1);
例: PL/I インクルード・ファイルに基づいた CREATE TABLE ステートメント。
DDL は以下のデータ項目のサブセットをマップします。
データ・サーバーで DDL を実行して表を作成するときに、データ・サーバーは自動的に、配列のインスタンスの数を計算します。ただし、可変長配列の後の構造で現れる列のマッピングにおける制限は引き続き適用されます。
CREATE TABLE "AA"."EMPLOYEE_RECORD" DBTYPE SEQUENTIAL DS "D" ( "EMPID" SOURCE DEFINITION DATAMAP OFFSET 40 LENGTH 9 DATATYPE C USE AS CHAR(9), "NUMBER_OF_DEPENDENTS" SOURCE DEFINITION DATAMAP OFFSET 49 LENGTH 2 DATATYPE H USE AS SMALLINT, BEGINLEVEL 1 OFFSET 51 LENGTH 0 OCCURS DEPENDING ON COLUMN "NUMBER_OF_DEPENDENTS", "DEP_ID" SOURCE DEFINITION DATAMAP OFFSET 0 LENGTH 9 DATATYPE C USE AS CHAR(9), "DEP_NAME" SOURCE DEFINITION DATAMAP OFFSET 9 LENGTH 20 DATATYPE C USE AS CHAR(20), ENDLEVEL 1 );