找到關於 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-EXECORDER-ID 和 ORDER-DATE 是主機變數,應該 ... 閱讀更多

廣告
© . All rights reserved.