테이블과 뷰를 올바르게 맵핑할 수 있도록 다음 예를 통해 COBOL 및 PL/I 배열 정의를 이해하십시오.
데이터 서버에 관계형 테이블이나 뷰를 작성할 때, Classic Data Architect는 COBOL 카피북이나 PL/I 포함 파일에 들어 있는 데이터 정의를 사용하여 DDL(Data Definition Language)을 생성합니다. 그런 다음 데이터 서버에서 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 );