1

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

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

从有效负载中读取错误。有关详细信息,请参阅“错误”属性。(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。

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

4

1 回答 1

1

解决方法

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

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

CodePlex 项目 URL

GitHub 项目地址

Sharepoint 列表适配器 2017 版

相关问题


更新 1

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

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

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

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

只是为了让你知道我让它工作了。我安装了 Sharepoint List Adapters 并将其添加到我的 SSIS 包中

于 2019-03-14T20:05:30.930 回答