找到关于 DB2 的150 篇文章

如何在 COBOL-DB2 程序中回滚所有对 DB2 表的更改?

Mandalika
更新于 2020年11月30日 08:58:19

3K+ 次浏览

我们可以使用 ROLLBACK 语句回滚在 COBOL-DB2 程序中对数据库所做的所有更改。但是,ROLLBACK 仅在未发出 COMMIT 之前适用。如果我们使用了 COMMIT 语句,则 ROLLBACK 将回滚在上次 COMMIT 点之后对 DB2 表所做的所有更改。例如,在 commit 语句之后,我们执行 UPDATE 语句来修改 ORDERS 表的 ORDER_PAID 列。之后,如果我们执行 ROLLBACK,则对 ORDERS 表的 UPDATE 将被回滚。示例 EXEC SQL COMMIT END-EXEC EXEC SQL UPDATE ORDERS SET ORDERS_PAID = ‘YES’ WHERE ORDER_DATE = :WS-CURRENT-DATE ... 阅读更多

DB2 中 JOIN 和 UNION 的区别是什么?请举例说明。

Mandalika
更新于 2020年11月30日 08:57:25

825 次浏览

JOIN 和 UNION 都用于组合一个或多个表中的数据。在 JOIN 的情况下,附加数据出现在列中,而在 UNION 的情况下,附加数据出现在行中。例如,JOIN 假设我们有两个 DB2 表,ORDERS 和 TRANSACTIONS。我们必须为每个 ORDER_ID 提取 TRANSACTION_ID,然后我们将使用 INNER JOIN,如下所示:示例 SELECT ORDER_ID, TRANSACTION_ID FROM ORDERS INNER JOIN TRANSACTIONS ON ORDERS.TRANSACTION_ID = TRANSACTIONS.TRANSACTION_ID 此查询将产生 2 列。一列来自 ORDERS 表,即 ORDER_ID,另一列来自 TRANSACTIONS 表,即 TRANSACTION_ID。UNION 我们有 ... 阅读更多

DB2 中 VALUE 函数有什么作用?请举例说明。

Mandalika
更新于 2020年11月30日 08:56:21

3K+ 次浏览

DB2 中 VALUE 函数的目的是检查 NULL 值,它可以替代 NULL 指示符或 COALESCE 函数。如果列值包含 NULL 值,则 VALUE 函数会将列值替换为给定的参数。例如,如果我们有一个 ORDER 表,我们必须从该表中提取 ORDER_ID 和 ORDER_DESCRIPTION。ORDER_DECRIPTION 列可能包含 NULL 值。如果是这种情况,我们必须用空格替换 ORDER_DESCRIPTION,那么我们可以使用以下查询:示例 EXEC SQL SELECT ORDER_ID, VALUE(ORDER_DESCRIPTION, ‘ ‘) INTO :ORDER-ID, :ORDER-DESCRIPTION FROM ORDERS ... 阅读更多

可滚动游标在当前定位中的用途是什么?

Mandalika
更新于 2020年9月15日 11:14:12

168 次浏览

我们可以使用可滚动游标将游标直接指向提到的相对位置。相对位置是从当前行开始的结果表中行的位置。例如,考虑下表。ORDER_IDORDER_DATEA223672020-07-28A667562020-07-28A778902020-07-29A968322020-07-29如果游标当前指向第 2 行(即 ORDER_ID A66756),则相对 +2 位置将是 ORDER_ID A96832,相对 -1 位置将是 ORDER_ID A22367。在 FETCH 语句中使用相对位置的语法是:EXEC SQL FETCH RELATIVE +2 ORDER_CURR INTO :ORDER-ID, :ORDER-DATE END-SQL阅读更多

可滚动游标在绝对定位中的用途是什么?

Mandalika
更新于 2020年9月15日 11:12:39

317 次浏览

可滚动游标可用于将游标位置直接指向提到的绝对位置。绝对位置是从第一行开始的结果表中特定行的位置。我们可以使用 FETCH 语句中的 ABSOLUTE 参数来获取绝对位置。例如,我们必须声明一个可滚动游标,如下所示。EXEC SQL DECLARE ORDER_CURR SCROLL CURSOR FOR SELECT ORDER_ID, ORDER_DATE FROM ORDERS WHERE ORDER_DATE = ‘2020-07-29’ END-SQL现在,如果我们想要获取绝对的第 9 行,那么我们将 ... 阅读更多

带语法的敏感和不敏感的可滚动游标有什么区别?

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

1K+ 次浏览

不敏感的可滚动游标是一种只读游标,一旦打开,结果表就不能更改。其他应用程序一旦打开也不允许更新不敏感的可滚动游标。与不敏感的可滚动游标不同,敏感的可滚动游标对结果表中所做的更改很敏感。其他应用程序所做的更改将反映在结果表中。我们可以像下面一样声明敏感和不敏感的可滚动游标。EXEC SQL DECLARE ORDER_CURR SENSITIVE SCROLL CURSOR FOR SELECT ORDER_ID, ORDER_DATE FROM ORDERS WHERE ORDER_DATE ... 阅读更多

编写在 ORDERS DB2 表上声明可滚动游标的语法。

Mandalika
更新于 2020年9月15日 11:08:13

513 次浏览

可滚动游标可以向前和向后移动。换句话说,它可以获取下一行以及前一行。可滚动游标使用 DECLARE CURSOR 中的“SCROLL”子句声明。例如,如果我们想在 ORDERS 表上声明一个可滚动游标,那么我们必须像下面一样声明游标。EXEC SQL DECLARE ORDER_CURR SCROLL CURSOR FOR SELECT ORDER_ID, ORDER_DATE FROM ORDERS WHERE ORDER_DATE = ‘2020-07-29’ END-SQL

COBOL DB2 程序中可滚动游标的用途是什么?

Mandalika
更新于 2020年9月15日 11:06:45

444 次浏览

游标只能向前移动,这意味着它可以在每次提取后提取下一行。使用游标无法提取前一行。例如,如果我们的结果游标包含以下行:ORDER_IDORDER_DATEA223672020-07-28A667562020-07-28A778902020-07-29A968322020-07-29如果我们的游标当前指向第 3 行(即订单 ID A77890),则下一个提取将使游标指向下一行(即订单 ID A96832)。无法将游标指向前一个订单 ID,即 A66756。为了实现这一点,我们使用可滚动游标的概念。可滚动游标可以同时 ... 阅读更多

多行插入中 ATOMIC 和 NON-ATOMIC 子句的用途是什么?

Mandalika
更新于 2020年9月15日 11:03:38

743 次浏览

ATOMIC 和 NON ATOMIC 子句用于多行插入。如果没有给出任何选项,则始终默认处理 ATOMIC。ATOMIC 子句指出,如果在多行插入期间插入任何一行都失败,则整个查询都将失败,并且所有插入都将回滚。NON ATOMIC 子句与 ATOMIC 子句恰好相反。当我们必须在多行插入中分别插入和处理所有行时,使用它。例如,此选项可以如下使用。MOVE 50 TO MAX-ROWS ... 阅读更多

如何在程序中使用单个 INSERT 命令在表中插入多行?

Mandalika
更新于 2020年9月15日 10:58:18

622 次浏览

如果我们想使用单个 INSERT 命令在 DB2 表中插入多行,那么我们必须定义主机变量数组并将我们要插入的行数据移动到该数组中。我们需要在工作存储区中定义另一个变量,其配置为 S9(4) COMP,它将保存要插入的行数。我们可以如下插入多行:MOVE 50 TO MAX-ROWS EXEC SQL INSERT INTO ORDERS (ORDER_ID, ORDER_DATE) VALUES(:ORDER-ID, :ORDER-DATE) FOR :MAX-ROWS ROWS END-EXEC ORDER-ID 和 ORDER-DATE 是主机变量,应该 ... 阅读更多

广告