找到關於 DB2 的150 篇文章

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

Mandalika
更新於 2020年12月1日 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月1日 04:43:41

1K+ 次瀏覽

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

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

Mandalika
更新於 2020年12月1日 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月1日 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

529 次瀏覽

DB2 鎖升級定義為獲取對特定資源的更嚴格鎖的過程。DB2 將鎖升級用於嘗試訪問同一 DB2 資源的併發程序。基本上,鎖有三種類型。共享鎖 (S) 併發程序可以在資源(DB2 表、行、頁等)上放置共享鎖,但不能更新資料。為了更新資料,併發程序必須將其鎖升級到 UPDATE。更新鎖 (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 聚合函式和 GROUP BY 與 HAVING 使用的 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聚合函式和GROUP BY與HAVING使用方法的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.