WebSphere 徽标 Classic Federation Server for z/OS V9.1
WebSphere 徽标 Classic Replication Server for z/OS V9.1
WebSphere 徽标 Classic Data Event Publisher for z/OS V9.1
WebSphere 徽标 Data Integration Classic Connector for z/OS V9.1


数组定义示例

使用下列示例来帮助您了解 COBOL 和 PL/I 数组定义,以便可以正确地映射表和视图。

在数据服务器上创建关系表或视图时,Classic Data Architect 将使用 COBOL 副本或 PL/I 包含文件中包括的数据定义来生成数据定义语言(DDL)。然后,可在数据服务器上运行 DDL 以在元数据目录中创建用户表。

COBOL 示例

示例:固定长度数组的 COBOL 定义。

DEPENDENTS-ARRAY 子句定义由四个固定长度字段组成的数组结构,该数组结构正好重复 20 次。可以使用 CREATE TABLE 或 CREATE VIEW 语句中的 NULL-IS 参数来对每个空数组实例指定 NULL 值。
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 定义。

该数组可以出现 1 到 20 次,这取决于在 DEPENDING ON 子句中指定的变量 NUMBER-OF-DEPENDENTS 的值。
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 样本

示例:描述职员记录的 PL/I 包含文件。

DIMENSION (DIM) 属性定义正好重复 20 次的固定长度数组结构。可以使用 CREATE TABLE 或 CREATE VIEW 语句中的 NULL-IS 参数来对每个空数组实例指定 NULL 值。
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 包含文件。

PL/I DIM 属性指定家属数目确定数组实例的数目。该数组可以出现 1 到 20 次,这取决于在 REFER 属性中指定的变量 NUMBER_OF_DEPENDENTS 的值。
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	);
相关概念
记录数组
多个记录数组的性能注意事项
联合和更改捕获的记录数组定义


反馈

更新时间图标 最近一次更新时间:2007 年 7 月 11 日