找到關於 DB2 的150 篇文章

如果 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 錯誤程式碼表示:“更新、插入或設定值為 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 的 ORDER_DESCRIPTION 列中的 NULL 值。A020-UPDATE-ORDERS。 移動 -1 到 ORDER-DESCRIPTION-N 移動空格到 ORDER-DESCRIPTION-DATA 執行 SQL 更新訂單 設定 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,因為……閱讀更多

如何使用 COBOL 段驗證 DB2 列資料中的 NULL 值?

Mandalika
更新於 2020年9月14日 14:52:20

2K+ 次瀏覽

為了實現這一點,我們將在 ORDERS 表的 INVOICE_ID 上的 SELECT 查詢之後使用 NULL 指示符。如果 NULL 指示符的值為 -1,則我們可以得出結論,INVOIVE_ID 具有 null 值。以下是對此的 COBOL 段:A010-CHECK-ORDER。 執行 SQL 選擇 INVOICE_ID 到:INVOICE_ID_DATA:INVOICE_ID_N 來自 ORDERS 其中 ORDER_ID = '678542112' 結束執行 如果 INVOICE-ID-N = -1 移動空格到 INVOICE-ID-DATA 結束如果INVOICE-ID-N 是此處由 DCLGEN 實用程式自動生成的 NULL 指示符。

當主機變數與 SELECT 語句中的列數不匹配時,COBOL-DB2 程式的行為將如何?

Mandalika
更新於 2020年9月14日 14:44:03

575 次瀏覽

如果列數和主機變數數不匹配,則查詢將失敗。我們可以透過兩種方法檢測此條件。如果存在不匹配,則 SQLCA 的 SQLWARN3 欄位將獲得 'W' 值。在某些安裝中,當存在不匹配時,SQLCA 的 SQLCODE 欄位將獲得錯誤程式碼 -804。我們可以使用 IF 條件來檢查 SQLWARN3 或 SQLCODE 中的值,並相應地載入程式處理。

DCLGEN 實用程式如何為 VARCHAR(n) 資料型別適應 NULL 主機變數?

Mandalika
更新於 2020年9月14日 14:39:55

1K+ 次瀏覽

如果未顯式定義為“NOT NULL”選項,則 DB2 列可以儲存 NULL 值。但是,COBOL 沒有任何 NULL 概念。為了處理這些 NULL 值,COBOL 程式對具有 NULL 值的字元列使用空格,對整數列使用零。但是,主要挑戰是如何檢測特定列具有 NULL 值以及如何將空格/零移動到相應的主機變數中。為了克服這個問題,DCLGEN 實用程式為每個可以儲存 null 值的 DB2 列生成一個 NULL 指示符。NULL 指示符是 2 位元組……閱讀更多

將 DECIMAL(7,3) 轉換為等效的 COBOL 主機變數 PIC 形式。

Mandalika
更新於 2020年9月14日 14:30:09

1K+ 次瀏覽

將 DECIMAL DB2 資料型別轉換為 COBOL 等效型別的公式為:DECIMAL(p,q) = PIC S9(p-q)V(q)。其中 V 表示隱式小數。DECIMAL(7,3) 可以取樣本值 7861.237,這可以轉換為 COBOL 等效型別為 PIC S9(7-3)V(3) = PIC S9(4)V(3)。

各種 DB2 資料型別的 COBOL 主機變數等效型別是什麼?

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

724 次瀏覽

主機變數用於將資料從 DB2 傳輸到程式,反之亦然。對於每個 DB2 表列,我們都有一個定義的 COBOL 等效主機變數。可以使用 DCLGEN 實用程式自動生成主機變數,或者我們可以在 COBOL-DB2 程式的工作儲存區部分顯式給出主機變數。下表中提到了各種 DB2 資料型別的 COBOL 等效型別。DB2 資料型別COBOL 等效型別SMALLINT - 2 位元組PIC S9(4) COMPINTEGER - 4 位元組PIC S9(9) COMPTIMESTAMP - 10 位元組PIC X(26)CHAR - 5 位元組PIC X(5)

廣告
© . All rights reserved.