2015-06-01 35 views
1

我有一個dataflow這是一個SharePoint List SourceADO.NET Database Destination。在SSIS 2008,當我運行這個我得到下面的錯誤。我已經通過了40個列,並檢查了輸入大小和數據庫列的大小,它們看起來很好。需要注意的是,我正在使用備註字段來處理ntext數據類型。要搜索的結果集是從SharePoint列表導入的600行。我運行這個數據流,並在下面得到Error,只有200個被寫入到需要導入的600個數據庫中。將我的頭髮拉出一般錯誤消息

3有趣的測試。

  • 測試1,增加緩衝區大小爲30萬,我現在得到390行 導入,然後我得到下面的Error。
  • 測試2,將值提高到50 百萬會導致錯誤直接發生。我沒有觸及 的批量大小爲2000.
  • 測試3,我在SharePoint列表源中取消映射幾個隨機列 ,現在所有行都會導入 。

我不明白是怎麼回事。看來我遇到了某種內部限制,這是SharePoint適配器問題嗎?

錯誤

Microsoft.SqlServer.Dts.Pipeline.DoesNotFitBufferException: The value is too large to fit in the column data area of the buffer. 

    at Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer.SetString(Int32 columnIndex, String value) 

    at Microsoft.Samples.SqlServer.SSIS.SharePointListAdapters.SharePointListSource.PrimeOutput(Int32 outputs, Int32[] outputIDs, PipelineBuffer[] buffers) 

    at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostPrimeOutput(IDTSManagedComponentWrapper100 wrapper, Int32 outputs, Int32[] outputIDs, IDTSBuffer100[] buffers, IntPtr ppBufferWirePacket) 
+0

我會嘗試降低批量大小。同時檢查數據源的高級屬性,並查看包數據流中正在轉換的備註字段的SSIS數據類型。 –

+0

科學方法將成爲你的朋友。改變一件事並測試。重複,直到找出造成失敗的原因。 – billinkc

+0

您遇到的錯誤是在緩衝區(從共享點適配器出來的)中。您可以移除您的目的地,並繼續獲得相同的結果。 – billinkc

回答

1

解決。 sp列表源的來源說,在現實生活中,字段爲100時爲150。太令人沮喪了。更改了源的字段大小。