在SSIS包中使用OData源预览SharePoint列表时出错

问题描述 投票:1回答:1

在SSIS包中,我正在尝试从SharePoint列表中提取数据。我正在使用OData源连接管理器。我输入了正确的服务文档位置。我正在使用身份验证类型:Windows身份验证。当我点击“测试连接”按钮时,我得到“测试连接成功”。

在OData源代码编辑器中,我选择刚刚配置的连接管理器。我选择了“收藏”选项。然后我从集合中选择列表。当我点击“预览”按钮时弹出以下错误:

从有效负载读取错误。有关详细信息,请参阅“错误”属性。 (Microsoft.Data.OData)

这是扩展的错误:

===================================

An error occured when reading the OData feed. (Microsoft.Data.DataFeedClient)

------------------------------
Program Location:

   at Microsoft.Data.DataFeedClient.DataFeedODataReaderV3.InterceptODataException[T](Func`1 function)
   at Microsoft.Data.DataFeedClient.DataFeedODataReaderV3.ReadNextODataEntry()
   at Microsoft.Data.DataFeedClient.DataFeedODataReaderV3.ReadNextRow(IRow reuseRow)
   at Microsoft.Data.DataFeedClient.BufferedRowsReader.FetchNextRow(IRow reuseRow)
   at Microsoft.Data.DataFeedClient.BufferedRowsReader.MoveNext()
   at Microsoft.Data.DataFeedClient.DataFeedDataReader.InternalMoveNext()
   at Microsoft.Data.DataFeedClient.DataFeedDataReader.Read()
   at Microsoft.DataTransformationServices.DataFlowUI.ODataConnectionPage.PreviewButton_Click(Object sender, EventArgs e)

===================================

An error was read from the payload. See the 'Error' property for more details. (Microsoft.Data.OData)

------------------------------
Program Location:

   at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadNextAndCheckForInStreamError()
   at Microsoft.Data.OData.Atom.BufferingXmlReader.ReadInternal(Boolean ignoreInStreamErrors)
   at Microsoft.Data.OData.Atom.BufferingXmlReader.Read()
   at System.Xml.XmlReader.SkipSubtree()
   at System.Xml.XmlReader.Skip()
   at Microsoft.Data.OData.Atom.ODataAtomEntryAndFeedDeserializer.ReadFeedContent(IODataAtomReaderFeedState feedState, Boolean isExpandedLinkContent)
   at Microsoft.Data.OData.Atom.ODataAtomReader.ReadAtEntryEndImplementation()
   at Microsoft.Data.OData.ODataReaderCore.ReadImplementation()
   at Microsoft.Data.OData.ODataReaderCore.ReadSynchronously()
   at Microsoft.Data.OData.ODataReaderCore.InterceptException[T](Func`1 action)
   at Microsoft.Data.OData.ODataReaderCore.Read()
   at Microsoft.Data.DataFeedClient.DataFeedODataReaderV3.ReadNextODataEntryInternal()
   at Microsoft.Data.DataFeedClient.DataFeedODataReaderV3.<ReadNextODataEntry>b__5()
   at Microsoft.Data.DataFeedClient.DataFeedODataReaderV3.InterceptODataException[T](Func`1 function)

我选择什么样的集合并不重要,同样的错误。我甚至试图用查询选项将数据限制为1个字段我知道没有问题。

我正在使用SSDT 2017.SharePoint版本是2013。

有任何想法吗?提前致谢。

sharepoint ssis odata sql-server-data-tools ssis-2017
1个回答
1
投票

Workaround

如果在尝试使用ODATA组件连接到Sharepoint时遇到问题,可以使用SSIS Sharepoint List Adapter,这是Microsoft SSIS社区(产品团队)完成的项目。

这些组件发布在Codeplex for SSIS 2005和2008上,几年前,该项目已迁移到GitHub并更新以支持SQL Server 2016,2017。

CodePlex项目URL

GitHub项目URL

Sharepoint List适配器2017版本

相关问题


Update 1

在搜索时我发现了以下有关使用ODATA Source和Sharepoint的主题:

在评论中有一个用户(Ravikiran)提到了相同的异常,看起来它是一个数据类型问题:

为此我能够通过要求sharepoint管理员创建一个计算列来解决它,该列将引用那些查找列并显示该值。此计算列将是基本类型varchar,因此很容易通过odata适配器为此提取数据。

另一个用户(Angela)给出了另一个解决方案:

只是为了让你知道我让它运转了。我安装了Sharepoint List Adapters,我把它添加到了我的SSIS包中

© www.soinside.com 2019 - 2024. All rights reserved.