狀況

當您執行 Microsoft SQL Server 整合服務 (SSIS) 封裝時,請執行失敗,因為參數型別轉換錯誤,,並且您收到下列錯誤訊息︰

程式碼︰ 0xC0202009
資料流程工作來源︰
描述︰ SSIS 錯誤碼 DTS_E_OLEDBERROR。OLE DB 錯誤。錯誤碼︰ 0x80040E21。
使用 OLE DB 資料錄。 來源: 「 Microsoft SQL Server 原生用戶端 11.0 」
Hresult: 0x80040E21 說明: 「 陣容規格的無效的字元值 」。


OLE DB 來源元件,當您有資料的資料流程工作,其中包含參數型的查詢,您可能會遇到這個問題。例如,您有下列查詢︰SELECT mydate FROM dbo.myTable
WHERE mydate >= convert (char, dateadd(year,-1,cast( ? as datetime)))
注意如果您嘗試使用查詢字串中的 OLE DB 來源元件加上參數,才會發生這個問題。參數標記"?"被對應到 SSIS 使用者變數參數 1定義為 SSIS 字串"20080122"。發生這個問題,Microsoft SQL Server 2005年或更新版本中移轉的封裝。

原因

之所以發生這個問題,是因為 OLE DB 如何處理參數的行為變更。在 Microsoft SQL Server 2012,新的預存程序的sp_describe_undeclared_parameters, fmtonly 器集合工具的取代會傳回不同的結果,對於參數型別。這項變更是經過設計的。

在範例查詢中 < 徵狀=""> 一節中,原始的行為,是描述"?"是"char(8)"。不過,新的

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×