Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用SSIS导入列时,XML将转换为中文/日文_Sql Server_Xml_Ssis_Etl - Fatal编程技术网

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查询的大容量插入,顺便说一句,它是有效的。但我试图消除查询部分。这就是为什么使用导入列。我尝试了此解决方案,但仍然无效:(