Sharepoint 2013 SSIS包:提取Sharepoint查找列时,出现错误';无法在unicode和非unicode字符串数据类型之间转换';
我正在处理一个项目,需要提取Sharepoint列表数据并将其导入SQL Server表。我在列表中有几个查找列 我的数据流中的步骤:Sharepoint 2013 SSIS包:提取Sharepoint查找列时,出现错误';无法在unicode和非unicode字符串数据类型之间转换';,sharepoint-2013,ssis,Sharepoint 2013,Ssis,我正在处理一个项目,需要提取Sharepoint列表数据并将其导入SQL Server表。我在列表中有几个查找列 我的数据流中的步骤: Sharepoint列表源 派生列 其公式为:子字符串([BusinessUnit]、FINDSTRING([BusinessUnit]、“#”,1)+1、LEN([BusinessUnit])-FINDSTRING([BusinessUnit]、“#”,1)) 数据转换 OLE DB目的地 但我仍然会遇到一个错误,即无法在unicode和非unicode字符
编码设置。编码是ANSI
(是ASCII,在SSIS中应该是DT_STR
),还是编码是Unicode
、Unicode大端码
、或UTF-8
(在SSIS中都是Unicode,或DT_WSTR
)
例如,如果OLE DB输出目标是SQL Server表,则可以检查所有字符串列是否都是VARCHAR
(ASCII或DT_STR
)或NVARCHAR
(Unicode或DT_WSTR
)
如果您对输入源的编码具有设计控制,或对输出目标的列具有设计控制,则最简单的选择可能是使它们都匹配:例如,如果您的输入是始终为Unicode的文本文件,则在SQL Server表中查找类型为VARCHAR
的任何列,并将其更改为NVARCHAR
。然后,您将重新创建SSIS数据流任务,所有字符串列类型为DT_WSTR
但是,如果您没有设计控制,并且任何列的起始类型(在Sharepoint中)与同一列的最终类型(在SQL Server中)不同,那么我建议在数据转换中更改该类型。例如,一个列的类型可以是进入数据转换的DT_STR
(ASCII),但从数据转换出来的DT_WSTR
(Unicode)
在“框”中而不是在“箭头”中对数据流进行任何类型更改
((作为一个旁注,请记住,当您对列及其类型进行更改时,必须在更改框之后双击每个对象,包括每个箭头,以便识别任何元数据更改。请考虑我对此问题的答案:))
有关SSI中所有数据类型的列表,请参阅本联机丛书(BOL)参考:
BOL页面顶部可能显示SQL Server 2014,您可能希望单击“其他版本”,将其更改为您的SQL Server版本 嗨,道格,谢谢你的描述性回答。我能够将列数据转换为非unicode文本。我对查找栏有其他问题,并将问题发布在此链接上。如果可能的话,你能检查一下吗?谢谢你-米塔尔。@MittalPatel我很高兴你已经得到了答案。有趣的是:你的问题的示例数据与同一天另一个问题的示例数据完全匹配,这让我想知道这是否是一个家庭作业;)。。。。无论如何,仅供参考,我实际上更喜欢在导入后在T-SQL中执行复杂的任务,例如一对多行拆分,而不是使用脚本组件。