将数据从SharePoint导出到SQL时的数据问题

时间:2013-03-28 18:55:29

标签: sql-server sql-server-2008 sharepoint-2010 ssis

我使用CodePlex SSIS Adapter中的SharePoint列表适配器将我的SharePoint列表项目传输到SQL Server 2008.人员/组选择器字段带有垃圾字符,如

  

10; #Mark,布朗   4; #Samantha,布朗   100; #Tim,Collins

如果该字段有多个人,则会显示如下: 7; #Sigmon,Russel;#18; #Colby,Fox;#23; #Rina,Meyer

我想到了解决这个问题的两种方法。

1)确定问题的根源并更正来源: 在这个选项中,我知道那些#s不是随机的,但是SharePoint为每个人分配了ID;#是分隔符。任何人都可以建议如何摆脱那些#s和;#在使用上面的Codeplex链接创建的包中?有没有其他方法可以从SharePoint列表本身解决此问题?或在包装(SSIS)?

2)在SQL中纠正它: 可能是创建一个存储过程/函数来去掉那些字符,只是用逗号分隔干净的名字?谁能指出我怎么样?

请让我知道你的想法。感谢。

2 个答案:

答案 0 :(得分:0)

我有一个SSIS包,它也应用相同的SharePoint适配器从多个SharePoint列表位置发布的多个文档中获取信息。我遇到了类似的问题,并通过应用SQL应用了您正在考虑的第二种方法。首先将SharePoint记录拉入临时临时数据库表,在该表中我应用一些SQL UPDATE语句来清理数据,包括删除随机#字符。然后,记录被标准化为最终目的地表。在您的情况下,您可能需要对值进行SQL解析(使用“#”)并可能应用游标以将每个名称放入单个记录中......如果这是最终意图。

希望这会有所帮助。如果您有任何问题,请告诉我。

感谢。

答案 1 :(得分:0)

这样做......

substring([Created by],charindex('#',[Created by])+ 1,len([Created by]) - charindex('#',[Created by]))as [Created by] < / p>