2013-03-12 54 views
1

我們有一個查找變換進行日期查找。輸入列數據類型是DT_DBDATE,匹配查找列也是如此。兩者都是SQL Server 2012中的DATE數據類型。這是一個SSIS 2012包。SSIS查找變換在日期列上失敗

查找在BIDS(設計者)中正常工作。當部署,並通過SSISDB UI或通過我們的自定義存儲過程運行時,此查找失敗,出現以下錯誤:

Error: Lookup Status Key.Inputs[Lookup Input].Columns[status_dt] and reference column named "status_dt" have incompatible data types.

我們也看到周圍所有的DATE列的同步警告,這些警告這些不會導致失敗。

是否有其他人看到過這種行爲?

更新:解決方法是將列轉換爲DATETIME(SSIS中的DT_DBTIMESTAMP)或將基礎列更改爲DATETIME。都解決了這個問題。兩者都很煩人。

我的猜測是問題的根源在OLE DB提供程序中。可能對僅限日期的數據類型提供有限或片狀的支持。

+0

你的猜測是正確的。使用OLEDB和簡單的'DATE'總是會導致警告,告訴您應該更新元數據。幾年前我已經在Microsoft Connect中提出過這個問題。 – 2013-03-13 16:54:25

+0

對於OLE DB中僅限日期的日期沒有本機支持。該值被轉換爲STR或WSTR。如果不在連接字符串中指定提供者,則默認行爲必定存在問題。 – Stuart 2013-03-15 18:32:38

回答

2

我有一個答案。問題是我沒有在連接字符串上指定提供者。當我添加提供程序= SQLNCLI11.1;,問題解決了。