當您執行 SQL 陳述式藉由使用 OLE DB 提供者的 DB2 FIX: 錯誤訊息: SQLSTATE 22007 SQLCODE-181"

文章翻譯 文章翻譯
文章編號: 924599 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

徵狀

考慮下列案例。您可以執行 SQL 陳述式藉由使用 DB2 的 Microsoft OLE DB 提供者。SQL 陳述式將 Microsoft SQL Server 日期時間 參數傳遞到 IBM DB2 資料庫資料行。在 IBM DB2 資料庫資料行使用 IBM DB2 DATE 資料類型。在這種情況下可能會收到下列錯誤訊息:
SQLSTATE: 22007 SQLCODE:-181
比方說下列 SQL 陳述式會將 SQL Server 日期時間 參數傳遞到 IBM DB2 資料庫資料行。
declare @var1 datetime
set @var1 = '2006-09-27 00:00:00.000'
SELECT COL1, COL2, COL3
FROM IBMDB2.TESTDATA.USER1.TABLE1
WHERE COL2 = @var1
在這個範例如果 COL2 資料行使用 IBM DB2 DATE 資料型別,就會發生這個問題。

發生的原因

在執行階段,OLE DB 提供者的 DB2 並不知道 IBM DB2 資料庫資料行,SQL Server 日期時間 參數傳遞到正確的 IBM DB2 資料類型。因此,OLE DB 提供者的 DB2 會包含日期資訊和時間資訊在 OLE DB 提供者的 DB2 會傳遞至 IBM DB2 資料庫的值。時間資訊與 IBM DB2 DATE 資料型別無效。因此,您收到 < 徵狀 > 一節所述之錯誤訊息。

解決方案

Microsoft 主機整合伺服器 2006

如果要解決這個問題,取得最新的 Service Pack 的主機整合 Server 2006。如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
979497如何取得最新的主機整合 Server 2006 Service Pack

Microsoft 主機整合伺服器 2004

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。

檔案資訊

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間中項目控制台中的 [時區] 索引標籤]。
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台預存程序需求
Db2oledb.dll6.0.2048.0488,9602006 年十一月 3 日17: 31x86sp1
Db2oledb.h不適用24,5792006 年十一月 3 日17: 36不適用sp1
Ddmstr.dll6.0.2048.044,0322006 年十一月 3 日17: 31x86sp1
Drdaresync.exe6.0.2048.0337,4082006 年十一月 3 日17: 32x86sp1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086,0162006 年十一月 3 日17: 31x86sp1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,3602006 年十一月 3 日17: 32x86sp1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,6882006 年十一月 3 日17: 31x86sp1
Mseidb2c.dll6.0.2048.071,6802006 年十一月 3 日17: 31x86sp1
Mseidb2d.dll6.0.2048.0435,2002006 年十一月 3 日17: 31x86sp1
Mseidrda.dll6.0.2048.0695,8082006 年十一月 3 日17: 32x86sp1
附註由於檔案相依性的最新 Hotfix 包含這些檔案也可能包含其他檔案。

Microsoft OLE DB 提供者的 DB2 版本 1.0

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。

檔案資訊

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間中項目控制台中的 [時區] 索引標籤]。
32 位元 (x86) 版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台預存程序需求
Db2oledb.dll6.0.2048.0488,9602006 年十一月 3 日17: 31x86sp1
Db2oledb.h不適用24,5792006 年十一月 3 日17: 36不適用sp1
Ddmstr.dll6.0.2048.044,0322006 年十一月 3 日17: 31x86sp1
Drdaresync.exe6.0.2048.0337,4082006 年十一月 3 日17: 32x86sp1
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2048.086,0162006 年十一月 3 日17: 31x86sp1
Microsoft.hostintegration.dataaccesstool.exe6.0.2048.02,703,3602006 年十一月 3 日17: 32x86sp1
Microsoft.hostintegration.msdb2client.dll6.0.2048.0114,6882006 年十一月 3 日17: 31x86sp1
Mseidb2c.dll6.0.2048.071,6802006 年十一月 3 日17: 31x86sp1
Mseidb2d.dll6.0.2048.0435,2002006 年十一月 3 日17: 31x86sp1
Mseidrda.dll6.0.2048.0695,8082006 年十一月 3 日17: 32x86sp1
64 位元 (x64) 版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台服務分支
Db2oledb.dll7.0.2535.0758,5442006 年十一月 7 日12: 34x64不適用
Microsoft.hostintegration.dataaccesslibrary.dll7.0.2535.02,550,6162006 年十一月 7 日12: 34x64不適用
Microsoft.hostintegration.dataaccesstool.exe7.0.2535.0613,2002006 年十一月 7 日12: 34x64不適用
Mseidrda.dll7.0.2535.01,355,5362006 年十一月 7 日12: 34x64不適用
Snanls.dll7.0.2535.0128,7762006 年十一月 7 日12: 34x64不適用
Db2oledb.dll7.0.2535.0516,8802006 年十一月 7 日12: 34x86SYSWOW
Mseidrda.dll7.0.2535.0781,0722006 年十一月 7 日12: 34x86SYSWOW
Snanls.dll7.0.2535.0105,2242006 年十一月 7 日12: 34x86SYSWOW
附註由於檔案相依性的最新 Hotfix 包含這些檔案也可能包含其他檔案。

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

此 Hotfix 會加入新的連接字串屬性的支援。使用新的連接字串屬性,您可以為 IBM DB2 DATE 資料型別 SQL Server 日期時間 參數傳遞至 IBM DB2 資料庫。OLE DB 提供者的 DB2 刪除值中時間資訊的 SQL Server 日期時間 參數。因此,OLE DB 提供者的 DB2 會傳遞至 IBM DB2 資料庫日期資訊。

新的連接字串屬性具有下列定義:
為日期的日期時間 = Value
在此連接字串] 屬性中,您可以定義 ValueTRUEFALSE。如果您新增 日期時間為 Date = TRUE 至連接字串 OLE DB 提供者的 DB2 的陳述式將 SQL Server 日期時間 參數轉換成 IBM DB2 DATE 資料型別。然後,OLE DB 提供者的 DB2 將值傳遞 IBM DB2 資料庫。

如果您新增 日期時間為 Date = FALSE 至連接字串 OLE DB 提供者的 DB2 的陳述式會將 SQL Server 日期時間 參數至 IBM DB2 資料庫為您在 SQL 陳述式中指定。會在這種情況下 OLE DB 提供者的 DB2 日期資訊、 傳遞時間資訊給 IBM DB2 資料庫。

附註如果您未新增至連接字串 日期時間 」 日期] 屬性,這項行為是預設行為。

下列的連接字串範例示範如何使用 日期時間 」 日期] 屬性。
; Everything after this line is an OLE DB initialization string.
Provider=DB2OLEDB;Password=<Password>;Persist Security Info=True;User ID=<Username>;Initial Catalog=S105FRDM;Defer Prepare=False;Derive Parameters=False;Network Transport Library=TCP;Host CCSID=37;PC Code Page=1252;Network Address=<Address>;Network Port=446;Package Collection=DB2USER;Default Schema=DB2USER;Default Qualifier=DB2USER;DBMS Platform=DB2/AS400;Process Binary as Character=False;Connection Pooling=True;Units of Work=RUW;DateTime As Date=TRUE
重要事項 當您套用此 Hotfix,並新增 日期時間為 Date = TRUE 陳述式至連接] 字串中,您可能會收到下列錯誤訊息:
SQLSTATE: 22007 SQLCODE:-180
如果 IBM DB2 資料庫資料行使用 IBM DB2 時間戳記 資料型別,就會發生這個問題。IBM DB2 資料庫預期接收日期資訊和時間資訊查詢傳遞至使用 IBM DB2 時間戳記 資料類型為 IBM DB2 資料庫資料行時,就會發生這個問題。日期時間為 Date = TRUE 陳述式會使 OLE DB 提供者的 DB2 刪除值中的時間資訊的 SQL Server 日期時間 參數。因此,資料時,無法有效查詢會傳遞至 IBM DB2 資料庫資料行使用 IBM DB2 時間戳記 資料型別。

如果您必須查詢使用 IBM DB2 DATE 資料型別與 IBM DB2 時間戳記 資料型別為 IBM DB2 資料表,您可能要使用多個連接字串設定為使用正確的屬性。然後,您可以成功查詢各種 IBM DB2 資料型別。

如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
824684用來描述 Microsoft 軟體更新標準術語的說明
在本文所討論的協力廠商產品是由 Microsoft 以外的公司所製造的。Microsoft 不保證,暗示或其他有關這些產品的效能或可靠性。

屬性

文章編號: 924599 - 上次校閱: 2010年2月4日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft Host Integration Server 2006 Enterprise Edition
  • Microsoft Host Integration Server 2006
  • Microsoft Host Integration Server 2004 Enterprise Edition
  • Microsoft Host Integration Server 2004 Standard Edition
  • Microsoft OLE DB Provider for DB2
關鍵字:?
kbmt kbautohotfix kbdb2oledb kbhis2004 kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB924599 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:924599
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com