找到关于数据库的6705篇文章

在 COBOL-DB2 程序中,“WHERE CURRENT OF” 子句的用途是什么?

Mandalika
更新于 2020年9月15日 10:42:45

5K+ 次浏览

“WHERE CURRENT OF” 子句会在执行 UPDATE 语句后对该行进行独占锁定。“WHERE CURRENT OF” 子句将指向游标最近提取的行。我们可以通过以下方式使用“WHERE CURRENT OF”更新游标中的行。游标定义。EXEC SQL DECLARE ORDER_CUR CURSOR FOR SELECT ORDER_ID, TRANSACTION_ID FROM ORDERS WHERE ORDER_DATE = ‘2020-07-28’ END-EXEC打开游标EXEC SQL OPEN ORDER_CUR END-EXEC提取游标并更新行SET WF-END-CURSOR-N TO TRUE PERFORM UNTIL WF-END-CURSOR-Y EXEC SQL FETCH ORDER_CUR INTO :ORDER-ID, :TRANSACTION-ID END-EXEC IF TRANSACTION-ID NOT = SPACES EXEC SQL ... 阅读更多

游标中“FOR UPDATE OF”子句的用途是什么?如果在 COBOL-DB2 程序中不使用此子句就执行 UPDATE 语句,将会发生什么?

Mandalika
更新于 2020年9月15日 10:35:09

694 次浏览

“FOR UPDATE OF” 子句在游标声明中给出,当我们想要更新表时使用。所有需要更新的列都应在游标声明中给出。“FOR UPDATE OF” 子句会在游标打开后对所有符合条件的行进行独占锁定。我们也可以不使用“FOR UPDATE CLAUSE”来更新表,但在这种情况下,只有在执行 UPDATE 查询时才会对该行进行独占锁定。

如何在 COBOL-DB2 程序中检测游标行结束的条件?

Mandalika
更新于 2020年9月14日 15:28:00

1K+ 次浏览

游标可用于从 DB2 表中提取多行。但是,我们必须在循环中提取此游标,以便一次将对应于单行的值赋值给主机变量。基于此逻辑,我们必须处理我们的循环,直到游标到达最后一行结果。当游标中没有更多行可提取时,SQLCODE 字段的值为 100。实际上,我们可以通过以下方式实现这一点。SET WF-END-CURSOR-N TO TRUE PERFORM UNTIL WF-END-CURSOR-Y EXEC SQL FETCH ORDER_CUR ... 阅读更多

在任何 COBOL-DB2 程序中使用游标的步骤是什么?

Mandalika
更新于 2020年9月14日 15:22:57

7K+ 次浏览

当我们需要从表中提取多行时,使用游标。在 COBOL-DB2 程序中使用游标涉及 4 个步骤。声明游标 - 在此步骤中,我们将定义游标的布局。我们将给出我们要使用的查询。例如 - EXEC SQL DECLARE ORDER_CUR CURSOR FOR SELECT ORDER_ID FROM ORDERS WHERE ORDER_DATE = ‘2020-07-28’ END-EXEC打开游标 - 接下来我们将打开我们的游标。此语句准备游标进行数据检索。例如 - EXEC SQL OPEN ORDER_CUR END-EXEC提取游标 - 在此语句中,我们开始从 DB2 中提取数据,并且 ... 阅读更多

解释应在何种情况下使用游标而不是独立的 SELECT 语句?

Mandalika
更新于 2020年9月14日 15:13:40

61 次浏览

当我们在 WHERE 子句中使用主键或备用键时,通常使用独立的 SELECT 语句。因此,在这种情况下,我们确定独立的 select 语句只会返回一行,因为主键不能具有重复值(多行)。如果我们想要使用非唯一键查询数据库,这可能会从 DB2 表返回多行,我们必须使用游标来处理返回的多行。我们可以循环访问游标以逐行读取数据。例如,如果我们想要 ... 阅读更多

如果 NULL 指示符中的最终值为 -2,我们可以得出什么结论?

Mandalika
更新于 2020年9月14日 15:07:28

876 次浏览

NULL 指示符是一个 2 字节字段,它具有多种用途。当任何 DB2 列具有 NULL 值时,此指示符的值为 -1;当 DB2 列具有非 NULL 值时,其值为 0。尽管 NULL 指示符的主要目的是检查列是否具有 NULL 值,但此指示符也可以取值为 -2。此指示符中的 -2 值表示由于计算表达式出现算术错误,将 NULL 值赋给了主机变量,或者 ... 阅读更多

在 DB2 表列中使用“NOT NULL WITH DEFAULT”子句的目的是什么?

Mandalika
更新于 2020年9月14日 15:02:16

1K+ 次浏览

当我们定义 DB2 表时,我们可以将任何列声明为“NOT NULL”,这意味着无论如何此列都不能存储 NULL 值。现在,如果我们尝试在我们的 COBOL-DB2 程序中使用 NULL 指示符中的 -1 值在此列中存储 NULL 值,则我们的查询将失败。在这种情况下,SQLCA 的 SQLCODE 字段将给出错误代码 -407。根据 IBM 文档,-407 错误代码表示 -“UPDATE、INSERT 或 SET 值为 NULL,但对象列不能包含 NULL 值”。

如何使用 COBOL-DB2 程序在 DB2 表的特定列中存储 NULL 值?

Mandalika
更新于 2020年9月14日 15:00:58

5K+ 次浏览

我们将使用 NULL 指示符以便在 DB2 表的任何列中存储 NULL 值。首先,我们应该在我们的 COBOL-DB2 程序中将值 -1 移动到 NULL 指示符中。之后,我们执行 UPDATE 或 INSERT 查询以存储 NULL 值。例如,如果我们必须更新 ORDER 表中 ORDER_ID 为 3345612.A020-UPDATE-ORDERS 的 ORDER_DESCRIPTION 列中的 NULL 值。移动 -1 到 ORDER-DESCRIPTION-N 移动空格到 ORDER-DESCRIPTION-DATA EXEC SQL UPDATE ORDERS SET ORDER_DESCRIPTION = ... 阅读更多

如果 DB2 表中存在 NULL 值,则 count 函数的结果是什么?

Mandalika
更新于 2020年9月14日 14:57:50

373 次浏览

DB2 中的 COUNT 函数用于返回满足给定条件的行数。GROUP BY 用于根据查询中给出的条件将行划分为组。如果我们对 INVOICE_ID 执行 GROUP BY,并且有一些行在 INVOICE_ID 中具有 NULL 值,则 null 值将形成一个单独的组。例如,如果我们有以下表。ORDER_IDINVOICE_IDA112343214A556113214A99867NULLA556713214A88907NULLA560126701在执行对 INVOICE_ID 执行 GROUP BY 并计算行数的查询后,我们将得到以下结果。SELECT INVOICE_ID, COUNT(*) AS INVOICE COUNT FROM ORDERS GROUP BY ... 阅读更多

如果在 COBOL-DB2 程序中的 SQL 语句中检测到 NULL 值并且未使用 NULL 指示符,将会发生什么?

Mandalika
更新于 2020年9月14日 14:54:26

2K+ 次浏览

COBOL 语言中没有 NULL 的概念。因此,如果 DB2 表中的任何列都可以保存 NULL 值,则我们需要在 SELECT 查询中给出 NULL 指示符以检测 NULL 值。但是,如果我们在 SELECT 查询中遗漏了 null 指示符,并且任何列都包含 NULL 值,则查询将失败,并且我们将在 SQLCA 的 SQLCODE 字段中获得 -305 的值。根据 IBM 文档,-305 值表示。“不能将 NULL 值分配给输出主机变量编号 position-number,因为 ... 阅读更多

广告