在一个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个我知道没有问题的字段。
我正在使用SSDT2017。SharePoint版本是2013。
有什么想法吗?预先感谢。
答案 0 :(得分:1)
如果在尝试使用ODATA组件连接到Sharepoint时遇到问题,则可以使用SSIS Sharepoint列表适配器,这是由Microsoft SSIS社区(产品团队)完成的项目。
这些组件在Codeplex上针对SSIS 2005和2008发布,然后几年前,该项目被迁移到GitHub并进行了更新以支持SQL Server 2016、2017。
CodePlex项目URL
GitHub项目URL
Sharepoint列表适配器2017版
相关问题
在搜索时,我发现了有关使用ODATA Source和Sharepoint的以下主题:
在注释中有一个用户(Ravikiran)提到了相同的异常,并且看起来这是一个数据类型问题:
为此,我能够通过要求共享点管理员创建一个计算列来解决该问题,该列将引用那些查找列并显示值。计算所得的列将为基本类型varchar,因此可以轻松地通过odata适配器为此提取数据。
还有另一个用户(Angela)提供了另一个解决方案:
只是让您知道我已经开始工作了。我安装了Sharepoint列表适配器,并将其添加到我的SSIS包中