簡體   English   中英

在DB2 9.7中取消警告

[英]suppress warning in DB2 9.7

我們正在將應用程序從9.1遷移到DB 9.7。 似乎在db2 9.1中將數據從大列存儲到小變量時,它不會引發任何警告。

但是DB2 9.7拋出了。 在我的應用程序中,有400多個存儲過程,所有過程均經過編碼,可將警告視為錯誤,並在出現任何錯誤時返回控制。

因此,當我們遷移到新的db2 9.7時,我的應用程序因此而被卡住,因為現在我們的許多存儲過程都在解決此警告: SQLCODE -445, warning: value has been truncated -445 SQLCODE -445, warning: value has been truncated

現在,我想禁止顯示此警告,以便不必更改現有存儲過程中現有的功能(數量如此之多)。

因此,DB2中有什么方法可以抑制這些特定或所有警告。

這只是一個警告,因此它不會阻止您的應用程序。 當我收到此類消息時,請執行以下操作。

假設您有一個50個字符的列,名為name。

select varchar(name, 20)
from mytable;

在上一個查詢中,我將列截斷為20個字符。 但是,如果該列的任何值大於20,則將顯示警告消息。

為了防止這種情況,我在截斷之前做了一個子串:

select varchar(substr(name, 1, 20), 20)
from mytable;

這樣,輸出將正確無任何消息。 如果您直接執行substr,您將擁有一個較小的字符串,但是輸出的大小將為原始大小。

最后,您要處理存儲過程,因此,您可以做兩件事:

  • 如我所示修改查詢,以截斷大小合適的值
  • 創建一個處理程序以警告帶有空的正文

例如:

DECLARE WARNING HANDLER FOR WARNING BEGIN END;

使用-o選項。 “ o”代表輸出,根據您的環境設置為默認的“開”或“關”。 您可以通過執行“ db2 LIST COMMAND OPTIONS”進行檢查。 如果“ -o”設置為“ ON”(如我的),則將使用“ + o”將其關閉。 或者,如果您的默認設置為“ OFF”,則使用“ -o”。

因此,如果您要終止連接並且不希望看到表明您確實終止了連接的消息,則該命令看起來像這樣:

db2 + o終止;

或者您可能需要:

db2 -o終止;

由於將“ +”更改為“-”,反之亦然,因此超級容易,因此不要同時查找默認值,只需將“ o”選項與加號或減號一起使用,直到不再顯示消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM