COBOL-DB2程序中DCLGEN和宿主变量的用途和用法是什么?


COBOL-DB2程序可以查询/更新/插入/删除多个DB2表中的数据。但是,为了实现这一点,我们必须满足两个主要条件。

  1. 将DB2表的结构通知COBOL-DB2程序。这包括所有列和这些列的数据类型。

  2. 每个列的相应宿主变量。宿主变量用于程序逻辑中,将数据从DB2移动到程序,反之亦然。每个表列都有一个基于其数据类型的宿主变量。例如,对于数据类型为CHAR(2)的表列,应该有一个与COBOL数据类型PIC X(2)等效的宿主变量。

DCLGEN实用程序帮助我们自动生成表结构和宿主变量。使用此实用程序,我们只需要提供DB2表名,它将返回表结构和PDS成员中的宿主变量。我们可以在COBOL-DB2程序的工作存储区部分使用INCLUDE语句简单地使用此PDS成员,如下所示:

EXEC SQL
   INCLUDE ORDERD
END-EXEC

ORDERD是一个使用DCLGEN实用程序生成的PDS成员。它将包含ORDERS表的结构以及所有列的宿主变量。例如,数据类型为CHAR(30)和TIMESTAMP的列ORDER_ID和ORDER_DATE将分别具有ORDER-ID PIC X(30)和ORDER-DATE PIC X(26)的宿主变量。如果我们想使用此宿主变量将数据从DB2移动到程序,那么我们可以:

EXEC SQL
EXEC SQL
   SELECT ORDER_DATE
      INTO :ORDER-DATE,
      FROM ORDERS
      WHERE ORDER_ID = :ORDER-ID
END-EXEC
END-EXEC

更新于:2020年9月14日

4K+浏览量

启动你的职业生涯

通过完成课程获得认证

开始学习
广告