Sql server 使用SSIS导入列时,XML将转换为中文/日文
场景:我在变量中有一个文件路径(Sql server 使用SSIS导入列时,XML将转换为中文/日文,sql-server,xml,ssis,etl,Sql Server,Xml,Ssis,Etl,场景:我在变量中有一个文件路径(E:\..\abc.xml),我需要将该文件的内容导入表中 XML内容: <?xml version="1.0"?> <x:books xmlns:x="urn:books"> <book id="bk001"> <author>Writer</author> <title>The First Book</title> <genre&
E:\..\abc.xml
),我需要将该文件的内容导入表中
XML内容:
<?xml version="1.0"?>
<x:books xmlns:x="urn:books">
<book id="bk001">
<author>Writer</author>
<title>The First Book</title>
<genre>Fiction</genre>
<price>44.95</price>
<pub_date>2000-10-01</pub_date>
<review>An amazing story of nothing.</review>
</book>
<book id="bk002">
<author>Poet</author>
<title>The Poet's First Poem</title>
<genre>Poem</genre>
<price>24.95</price>
<pub_date>2011-11-11</pub_date>
<review>Least poetic poems.</review>
</book>
</x:books>
将内容插入到表中。所以问题是,包正在成功运行,但插入的内容不是XML内容,而是其他语言(中文或日语)
这是我的包裹
Get Filepath
,将变量转换为输出列,因此输出列XMLFile
具有位置E:\..\abc.xml
这是我的导入列
配置
我的输出是
任何建议都会有帮助 问题可能是由数据类型冲突引起的,只需尝试将目标列数据类型从DT_NTEXT
更改为DT_WSTR
,长度为4000
如果它不起作用
请遵循以下链接中的建议:
解决方法
尝试向暂存表(列类型NVarchar)插入数据,使用执行SQL语句将数据传输到目标。输入XML文件是什么样子的?它是一个普通的XML文件,我已经用XML内容更新了这个问题。目标列的数据类型是XML数据类型?可能XML文件的编码是UTF-8,SQL Server希望它是UTF-16。虽然这只是一个猜测,但SQLServer通常希望UTF-16中的所有内容都是一样的。也许有一个选项可以指定SSIS中源文件的编码?您是否尝试过导入到NVARCHAR(MAX)列或VARCHAR(MAX)列?同样的效果?如果没有,您可以执行post ops将更好的导入转换为最终的XML列。。。只是个主意,谢谢你,哈迪。我使用了一个暂存表,并使用了使用SQL查询的大容量插入,顺便说一句,它是有效的。但我试图消除查询部分。这就是为什么使用导入列。我尝试了此解决方案,但仍然无效:(