0

我使用来自 CodePlex SSIS 适配器的 SharePoint 列表适配器将我的 SharePoint 列表项传输到 SQL Server 2008。个人/组选择器字段带有垃圾字符,例如

10;#马克,布朗 4;#萨曼莎,布朗 100;#蒂姆,柯林斯

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

我正在设想解决这个问题的两种方法。

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

2)在 SQL 中更正它: 可能是创建一个存储的过程/函数来去除这些字符并且只使用逗号分隔的干净名称?谁能指点我怎么做?

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

4

2 回答 2

0

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

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

谢谢。

于 2013-03-29T17:45:23.290 回答
0

这样做...

substring([创建者],charindex('#',[创建者])+1,len([创建者])-charindex('#',[创建者])) as [创建者]

于 2013-08-21T19:54:00.020 回答