2K+ 浏览量
INCLUDE 语句和 COPY 语句的主要区别在于,INCLUDE 语句中的 PDS 成员在预编译期间展开,而 COPY 语句中的 PDS 成员在编译期间展开。由于 DCLGEN 成员包含表的列名(表结构),因此有必要在预编译期间展开它。这是因为在预编译时,所有 SQL 语句都将被验证,放入 DBRM 中,最后被替换为相应的 COBOL 调用。如果 DCLGEN 成员使用 COPY 语句而不是 INCLUDE 语句,则在预编译期间将导致 DB2 警告,因为预编译器不会… 阅读更多
4K+ 浏览量
COBOL-DB2 程序可以查询/更新/插入/删除多个 DB2 表中的数据。但是,为了实现这一点,我们必须满足两个主要条件。将 DB2 表的结构通知给 COBOL-DB2 程序。这包括所有列和这些列的数据类型。每个列的相应宿主变量。宿主变量用于程序逻辑中,将数据从 DB2 移动到程序,反之亦然。每个表列都有一个基于其数据类型的宿主变量。例如,对于数据类型为 CHAR(2) 的表列,应该有一个数据类型为… 阅读更多
601 浏览量
我们使用 SQLCA 的字段来查询最近执行的 SQL 查询的状态。SQLCODE 就是这样一个字段,它可以取各种值,每个值都表示特定的错误代码。例如,-180 错误代码表示时间戳格式不正确。但是,在日志中我们只得到错误代码,每次都必须参考 IBM 文档来检查错误代码的描述。为了克服这个问题,我们使用 DSNTIAR。DSNTIAR 是 IBM 提供的一个内置实用程序,用于 COBOL-DB2 程序。此实用程序显示… 阅读更多
190 浏览量
COBOL-DB2 程序可以有多个 DB2 SQL 语句。为了在 COBOL-DB2 程序中为所有 SQL 语句实现通用的错误捕获,我们将使用 WHENEVER 语句。WHENEVER 语句可以根据 SQLCA 的 SQLCODE 字段中返回的值将控制定向到错误处理部分或例程。例如,我们可以在 COBOL-DB2 程序中声明 WHENEVER 语句如下:EXEC SQL WHENEVER SQLERROR GOTO ERROR-ROUTINE END-EXEC 在上面的例子中,只有当 SQLCODE 的值小于零时,才会设置 SQLERROR 参数,这表示发生了一些错误… 阅读更多
3K+ 浏览量
SQLCA 代表 SQL 通信区域。它是 DB2 与 COBOL 程序进行通信的媒介。在一个典型的 COBOL-DB2 程序中,使用了许多 SQL 语句。SQLCA 的主要目的是将最近执行的 SQL 查询的状态和其他详细信息告知 COBOL 程序。SQLCA 的总长度为 136 字节,它由 SQLCODE、SQLERRD、SQLWARN 等各种字段组成。这些字段中的每一个都提供了最后执行的 SQL 查询的具体详细信息。例如,SQLCODE 返回 DB2 错误代码(如果有的话),SQLWARN 返回发出的警告… 阅读更多
431 浏览量
非聚集索引与聚集索引恰恰相反。在非聚集索引中,不必具有相似索引键的数据行位于同一页中。如果我们必须遍历表,则此索引适用。例如,如果我们考虑索引键为表中整数 - 2、12、14 等的情况。那么非聚集索引结构如下所示:
1K+ 浏览量
在 DB2 表的聚集索引中,具有相似索引键的数据行(表行)存储在同一页中。例如,如果我们有 4 个索引键 - T5623、T5611、Z9786 和 Z9078。因此,具有相似键 T5623 和 T5611 的数据行将存储在同一页中,其他相似键 Z9786 和 Z9078 将一起存储在另一页中。聚集索引结构有两种类型的页,即索引页和数据页。索引页存储所有索引键值并指向数据页,因此… 阅读更多
329 浏览量
根据标准 DB2 定义,时间戳在 DB2 存储中占用 10 个字节,在相应的 COBOL 存储中占用 26 个字节 (PIC X(26))。格式为 YYYY-MM-DDHH.MM.SS.NNNNNN。其中,YYYY:- 年 | MM:- 月 | DD:- 日 | HH:- 时 | MM:- 分 | SS:- 秒 | NNNNNN:- 毫秒根据问题中给出的场景,时间戳为“2020-07-01 23:14”。显然,时间戳的格式不正确,因为正确的格式是 YYYY-MM-DDHH.MM.SS.NNNNNN。在这种情况下,如果我们尝试将此格式不正确的时间戳插入到定义为时间戳的 DB2 表列中… 阅读更多
721 浏览量
为了维护 DB2 表的完整性,主键在整个表中始终是唯一的。例如,如果我们有一个 DB2 表 ORDERS,它存储所有订单,并且该表的主键是列 ORDER_ID。那么只有一行具有特定的订单 ID。这将有助于清晰地识别订单。如果我们尝试使用 COBOL-DB2 程序插入或更新具有重复主键的 DB2 表中的行,我们将得到 DB2 错误代码 -803。根据 IBM 文档,-803 错误代码… 阅读更多
107 浏览量
要在 DB2 数据库中启动特定表空间,我们可以使用以下面板命令。START DATABASE (DSNDB01) SPACENAM(TABSPAC1) 使用 START DATABASE 命令,我们还可以启动数据库和索引空间。