我使用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中纠正它: 可能是创建一个存储过程/函数来去掉那些字符,只是用逗号分隔干净的名字?谁能指出我怎么样?
请让我知道你的想法。感谢。
答案 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>