找到 150 篇文章 關於 DB2

如何在 ORDERS DB2 表上建立一個新的觸發器?給出觸發器的語法。

Mandalika
更新於 2020-12-01 04:44:50

401 次檢視

觸發器是資料庫程式,由資料庫自動觸發。觸發器使用 CREATE TRIGGER 語句建立。例如,我們想要建立一個觸發器,在 ORDERS 表中每次插入新記錄後,將 ORDERS 表的 ORDER_COMMISION 列更新為 ORDER_TOTAL 值的 5%。示例CREATE TRIGGER ORDERCOMMUPD AFTER INSERT ON ORDERS FOR EACH ROW MODE DB2SQL BEGIN ATOMIC UPDATE ORDERS SET ORDER_COMMISION=(5*ORDER_TOTAL)/100;使用以上語句,我們建立了一個 AFTER 觸發器,該觸發器將在 ORDERS 表中插入任何新行後自動觸發。類似地,我們可以有 BEFORE ... 閱讀更多

什麼是 DB2 中的觸發器?觸發器和儲存過程有什麼區別?

Mandalika
更新於 2020-12-01 04:43:41

1K+ 次檢視

觸發器是資料庫程式,由 DBMS 自動觸發,以響應對指定表所做的任何修改。觸發器只能與單個表關聯,並且如果發生所需的事件,則不能跳過它們。觸發器類似於儲存過程,因為兩者都是由 DB2 直接管理的程式碼片段。但是,觸發器是事件驅動的,並且在指定表上發生所需的事件(INSERT/UPDATE/DELETE)時會自動執行。另一方面,儲存過程需要在應用程式程式中顯式呼叫。它們之間的另一個區別是,觸發器是 ... 閱讀更多

COBOL-DB2 程式如何呼叫儲存過程?舉個例子。

Mandalika
更新於 2020-12-01 04:41:51

4K+ 次檢視

儲存過程通常包含一個或多個程式中經常使用的 SQL。儲存過程的主要優點是它減少了 COBOL 和 DB2 之間的資料流量,因為儲存過程駐留在 DB2 中。COBOL-DB2 程式可以使用 CALL 語句呼叫儲存過程,並且我們可以巢狀儲存過程最多 16 層。例如,如果我們有一個名為 ORDERSTAT 的儲存過程,那麼我們可以在我們的 COBOL-DB2 程式中使用以下命令呼叫它:示例EXEC SQL    CALL ORDERSTAT (:WS-ORDER-ID, :WS-ORDER-STATUS) END-EXEC為了建立 DB2 過程,我們 ... 閱讀更多

資料庫停機對 COBOL-DB2 程式的影響

Mandalika
更新於 2020-12-01 04:40:37

896 次檢視

問題:如果 COBOL-DB2 程式嘗試查詢 DB2 表,但表所在的資料庫已關閉,結果會怎樣?解決方案當我們嘗試使用 COBOL-DB2 程式訪問任何表並且該表所在的 DB2 資料庫已關閉時,COBOL-DB2 程式將異常終止。在這種情況下,SQLCA 欄位的 SQLCODE 將具有值 -904。根據 IBM 文件,SQLCODE -904 指示“資源不可用。資料庫或表空間不可用”有幾種方法可以用來查詢... 閱讀更多

調查 DB2 死鎖的根本原因和負責的資源

Mandalika
更新於 2020-11-30 09:41:18

1K+ 次檢視

問題:一個 COBOL-DB2 程式由於死鎖而失敗。您將如何找到導致程式失敗的資源?解決方案當兩個或多個應用程式卡住,等待彼此釋放它們所需的資源上的鎖時,就會發生死鎖情況。可以在 DB2 系統作業 DSNZMSTR 作業中找到詳細的資訊和日誌。DSNZ 是已安裝的 DB2 子系統的名稱,它因安裝而異。此作業的 SYSOUT 繼續顯示 DB2 級系統日誌。與死鎖相關的日誌也可用... 閱讀更多

藉助示例解釋鎖提升的概念

Mandalika
更新於 2020-11-30 09:40:03

528 次檢視

DB2 鎖提升定義為獲取對特定資源的更嚴格鎖的過程。DB2 將鎖提升用於嘗試訪問相同 DB2 資源的併發程序。基本上,有三種類型的鎖。共享鎖 (S)併發程序可以在資源(DB2 表、行、頁等)上放置共享鎖,但不能更新資料。為了更新資料,併發程序必須將其鎖提升到更新。更新鎖 (U)併發程序可以讀取資料,但不能更新它。更新鎖表示該程序已準備好更新... 閱讀更多

直接索引查詢的實現和目的

Mandalika
更新於 2020-11-30 09:38:27

134 次檢視

當 WHERE 子句謂詞中使用的所有列都是索引的一部分時,DB2 最佳化器會選擇直接索引查詢。例如,如果我們有如下 ORDERS DB2 表。ORDER_IDORDER_DATEORDER_TOTALZ2234530-10-2020342Z3341214-08-2020543Z5699019-10-2020431Z5690221-09-20206743Z9978104-11-2020443Z5611229-08-2020889在此表中,有一個索引,其中包含名為 ORDER_ID 和 ORDER_DATE 的列。對於以下查詢,DB2 最佳化器將選擇直接索引查詢,因為 SELECT 語句中使用的列也是索引的一部分。示例SELECT ORDER_ID, ORDER_DATE, INVOICE_ID FROM ORDERS    WHERE ORDER_ID = ‘Z33412’ AND ORDER_DATE = ‘14-08-2020’以上查詢的結果如下。ORDER_IDORDER_DATEZ3341214-08-2020在... 閱讀更多

描述 MAX 聚合函式和帶 HAVING 的 GROUP-BY 用法的 SQL 查詢是什麼?

Mandalika
更新於 2020-11-30 09:37:27

210 次檢視

我們可以使用以下查詢找到 ORDERS DB2 表中按日期排序的最高 ORDER_TOTAL。示例SELECT ORDER_DATE, MAX(ORDER_TOTAL) FROM ORDERS GROUP BY ORDER_DATE我們將對 ORDER_DATE 使用“GROUP BY”按日期對結果進行分組,而 MAX 聚合函式將幫助我們獲取在特定日期放置的最大 ORDER_TOTAL。例如,如果我們有以下 ORDERS DB2 表。ORDER_IDORDER_TOTALORDER_DATEZ2234534229-07-2020Z6299854330-07-2020Z5699043128-07-2020Z56902674329-07-2020Z9978144328-07-2020Z5611288930-07-2020 那麼 SQL 查詢 - SELECT ORDER_DATE, MAX(ORDER_TOTAL) FROM ORDERS GROUP BY ORDER_DATE 將返回以下結果。ORDER_DATEORDER_TOTAL28-07-202044329-07-2020674330-07-2020889閱讀更多

編寫 DB2 SQL 查詢以查詢 ORDERS DB2 表中第三高的 ORDER_TOTAL

Mandalika
更新於 2020-11-30 09:36:25

538 次檢視

我們可以使用以下查詢在 ORDERS DB2 表中找到第三高的 ORDER_TOTAL。示例SELECT ORDER_ID, MIN(ORDER_TOTAL) FROM ORDERS    ORDER BY ORDER_TOTAL DESC    FETCH FIRST 3 ROWS ONLY“FETCH FIRST 3 ROWS ONLY”子句將僅在輸出中提供 3 行,並且這 3 行將按降序排列。第一行將具有整個 ORDERS 表中最高的 ORDER_TOTAL,第二行將具有整個 ORDERS 表中第二高的 ORDER_TOTAL,依此類推。MIN 聚合函式將在這 3 行中給出 ORDER_TOTAL 的最小值,並且此... 閱讀更多

描述 SUM 聚合函式和帶 HAVING 的 GROUP-BY 用法的 SQL 查詢

Mandalika
更新於 2020-11-30 09:35:05

300 次檢視

問題:編寫 DB2 SQL 查詢以分別給出 7 月 29 日和 7 月 30 日下達的訂單的 ORDER_TOTAL 總和。結果應在一個表中顯示。解決方案我們可以使用聚合函式 SUM、GROUP BY 和 HAVING 分別查詢 7 月 29 日和 7 月 30 日下達的訂單的 ORDER_TOTAL 總和。例如,如果我們有一個如下所示的 ORDER 表。ORDER_IDORDER_TOTALORDER_DATEZ2234534229-07-2020Z6299854330-07-2020Z5699043112-07-2020Z56902674329-07-2020Z9978144310-07-2020Z5611288930-07-2020 以下是將給出所需結果的查詢。示例SELECT ORDER_DATE, SUM(ORDER_TOTAL) FROM ORDERS GROUP BY ORDER_DATE HAVING ORDER_DATE IN (‘29-07-2020’, ‘30-07-2020’)在此查詢中,我們選擇了 ORDER_DATE 和 ORDER_TOTAL 以及聚合函式 SUM。GROUP BY 將... 閱讀更多

廣告

© . All rights reserved.