情景:(db2資料庫)
在串連資料sample的時候提示:SQL0332N 沒有從原始碼頁 "1114" 至目標字碼頁 "UNKNOWN" 的轉換。原因代碼是 "1"。 SQLSTATE=57017
這種錯誤我遇見過幾次.第一次由於沒有時間找答案,將系統重新安裝了一遍,很傻了.
今天又遇見了這個問題.出現這個問題的原因真的很多.因為以前用過這個sample ,而且對資料庫的一些內容並沒有主動去修改過.今天突然在使用資料庫的時候,一個程式提示了這樣的錯誤.:
[IBM][CLI Driver][DB2/NT] SQL0332N 沒有從原始碼頁 "1386" 至目標字碼頁 "950" 的轉換。原因碼為 "3"。 SQLSTATE=57017
於是想從用戶端來看看這個資料庫的內容,在使用一些串連資料庫的工具串連的時候就出現了標題中的錯誤.
看到了很多關於這個問題的解決方案,如:
db2set db2codepage=1114
db2stop force
db2start
不過這裡是有問題的,IBM提供的一個相關問題的解決方案是這樣的:
例如:
當發出命令:db2 connect to db_name 後系統返回
SQL0332N There is no available conversion for the source code page "819" to the target code page "1386". Reason Code "1". SQLSTATE=57017
DB2 要求原始碼頁與目標字碼頁是互相相容的, 在上邊的例子中,原始碼頁為819與目標字碼頁為1386不相容導致了資料庫連接失敗, 解決方案如下:
在發出db2 connect 命令失敗的機器上,在DB2 命令視窗中執行如下命令後重新進行串連:
->
db2set db2codepage=1386 –I instance_name
db2 terminate
而在這裡:SQL0332N 沒有從原始碼頁 "1114" 至目標字碼頁 "UNKNOWN" 的轉換。原因代碼是 "1"。 SQLSTATE=57017
目標字碼頁是"UNKNOWN",很疑惑?
但是在我啟動並執行一個串連資料的程式時,有這樣的提示:IBM][CLI Driver][DB2/NT] SQL0332N 沒有從原始碼頁 "1386" 至目標字碼頁 "950" 的轉換。原因碼為 "3"。 SQLSTATE=57017
所以,就用950來代替db2codepage=1386中的1386
解決過程如下:
系統:windows xp
在開始->運行中運行DB2CMD,出現db2 clp視窗
輸入命令db2set db2codepage=950 斷行符號
輸入命令db2 terminate 斷行符號
出現提示資訊:DB20000I TERMINATE 命令成功完成
輸入命令db2stop force 斷行符號
出現提示資訊:SQL1064N DB2STOP 處理成功.
輸入命令db2start 斷行符號
出現提示資訊:SQL1063N DB2START 處理成功.
輸入命令db2 connect to sample 斷行符號 /* sample 是我要串連的資料庫名稱
出現提示資訊:
資料庫連接資訊
資料庫伺服器 =DB2/NT 8.2.4
SQL授權標識 =WUYI
本機資料庫別名 =SAMPLE
到此資料庫連接成功.
如果通過db2的控制中心裡的配置助手測試連接,再沒有提示錯誤資訊.
而至於在沒有主動對資料庫進行配置修改就出現了以上的錯誤的原因,目前還沒有檢查
出來.待 找到原因以後,再同大家一起研究研究.