徵狀
假設您在 Microsoft SQL Server 2012 Integration Services (SSIS 2012)或 SQL Server 2014 Integration Services (SSIS 2014)套件中使用資料品質服務(DQS)清理元件與大型批次。 當您嘗試執行套件時,可能會收到下列結果:
-
您會在 SSIS 套件中收到下列錯誤
OnError、<MachineName>、<UserName>、資料流程程工作-透過 DQS 傳遞資料、{9C749B1D-3FAF-4E3B-B0B9-C8BA626428F5}、{B8582806-2FDB-43EF-8E69-B43E6A375DD2}、<日期><時間>、<日期><時間>、0、0x、<><>中的值 ' StringValue 」無法符合目前的緩衝區。 值長度是11,但輸出欄長度是1、<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 基礎結構中發生意外的錯誤。DoesNotFitBufferException:值太大,無法放入緩衝區的 [資料區域] 中。 在 Microsoft SqlServer. Dts 中。 PipelineBuffer SetString (Int32 columnIndex,字串值)。(ComponentUtility IDTSComponentMetaData100、ComponentMetadata 緩衝區、Int32 PipelineBuffer、DataType 類型、Int32 長度、String columnName、Object 值),請參閱(FieldIndex ' 1 Ssdqs、DataCorrection ' 1 記錄、DataCorrectionComponent& ProcessChunk)
-
套件完成後,請開啟 DQS 用戶端中產生的專案,並檢查其中一個網域。 如果您依值排序網域,您可能會看到來自其他網域的值。
注意: 這個問題的失敗率取決於批次大小。 當批次的大小較大時,失敗率會較大。
解決方案
此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2012 SP2 累積更新1 /en-us/help/2976982
SQL Server 2014 的累積更新2 /en-us/help/2967546
SQL Server 2012 SP1 累計更新10 /en-us/help/2954099
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
因應措施
若要解決此問題,請減少批次大小以解決或緩解問題。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。