症狀
假設您在 Microsoft SQL Server 2012 Integration Services (SSIS 2012) 或 SQL Server 2014 Integration Services (SSIS 2014) 套件中,使用 Data Quality Services (DQS) Cleansing 元件。 當您嘗試執行套件時,可能會收到下列結果:
您在 SSIS 套件內收到下列錯誤
注意
OnError,MachineName,UserName,資料流程工作 - 透過 DQS 傳遞資料,{9C749B1D-3FAF-4E3B-B0B9-C8BA626428F5},{B8582806-2FDB-43EF-8E69-B43E6A375DD2},<日期><時間>,日期><時間>,<0,0x,資料行 <ColumnName' 中的值 '<StringValue>>' 不符合目前緩衝區。<><> 值長度為 11,但輸出欄長度為 1。
OnError,MachineName,UserNname,DQS_Test,{AF400590-A48A-4483-87A0-A5CC5AC8BF09},{B8582806-2FDB-43EF-8E69-B43E6A375DD2},<日期><時間>,日期><時間>,<0,0x,資料行 <ColumnName' 中的值 '<StringValue>>' 不符合目前的緩衝區。<><> 值長度為 11,但輸出欄長度為 1。
OnError,MachineName,UserName,資料流程工作 - 透過 DQS 傳遞資料,{9C749B1D-3FAF-4E3B-B0B9-C8BA626428F5},{B8582806-2FDB-43EF-8E69-B43E6A375DD2},<日期><時間>,日期><時間>,<0,0x,DQS 基礎結構中發生未預期的錯誤。<><>
Microsoft.SqlServer.Dts.Pipeline.DoesNotFitBufferException:此值太大,無法放入緩衝區的欄資料區域。
位於 Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer.SetString (Int32 columnIndex,字串值)
位於 Microsoft.Ssdqs.Component.Common.Utilities.ComponentUtility.SetValue (IDTSComponentMetaData100 componentMetadata, PipelineBuffer buffer, Int32 fieldIndex, DataType type, Int32 length, String columnName, Object value) 位於 Microsoft.Ssdqs.Component.DataCorrection.Logic.DataCorrectionComponent.ProcessChunk (ReadOnlyCollection'1 fieldMappings, ReadOnlyCollection'1 records, CorrectedRecordsStatusStatistics& correctedRecordsTotalStatusStatistics)套件完成後,開啟 DQS 用戶端中產生的專案,並檢查其中一個網域。 如果您依據值來排序網域,您可能會看到來自其他網域的值。
注意:此問題的失敗率取決於批次大小。 當批次規模較大時,故障率會更大。
解決方式
此問題已先在下列 SQL Server 累積更新中修正。
SQL Server 2012 SP2 的累積更新 1 /zh-tw/help/2976982
2014 年 SQL Server 累積更新 2 /zh-tw/help/2967546
SQL Server 2012 SP1 的累積更新 10 /zh-tw/help/2954099
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
因應措施
若要解決此問題,請減少批次大小以解決問題或緩解此問題。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。