【发布时间】:2019-07-30 10:39:13
【问题描述】:
我正在使用 SQL Server 2014 和 SSIS。我有一个使用以下 SQL 命令输出到平面文件目标的 OLE DB 源 - 配置为另存为 .XML
这是我的 SQL:
DECLARE @XMLOutput XML
DECLARE @XMLOutputChar nvarchar(max)
;WITH XMLNAMESPACES('myNameSpace' as ns)
SELECT @XMLOutput =
(
SELECT field1
FROM table1
FOR XML PATH('Testing'),TYPE, ROOT('TestingLoader'),ELEMENTS XSINIL
)
SET @XMLOutputChar = '<?xml version="1.0" encoding="UTF-8"?>' + CONVERT(nvarchar(max),@XMLOutput)
SELECT @XMLOutputChar AS XMLOutput
但是,当我尝试将 XML 文件导入第 3 方应用程序时,我收到错误:
Name cannot begin with the '.' character, hexadecimal value 0x00. Line 1, position 40.
即使我尝试在 MS Word 中查看,我也会收到错误:
Unable to switch the encoding
这是因为我将其定义为 UTF-8 和 nvarchar(max) 吗?
谢谢。
【问题讨论】:
-
尝试用Notepad++打开文件,查看->显示符号->全部,看看有没有字符
-
我什么都看不到,没有
-
第 1 行有什么值/字符?在第 40 位?
-
@Brad 使用 OP 的代码和我自己创建的临时表,我得到了
TestingLoader根节点名称的T。<?xml version="1.0" encoding="UTF-8"?><TestingLoader... -
@Michael 你能告诉我们你是如何配置 OLE DB 源、数据流和平面文件目标的吗?
标签: sql-server xml ssis