1

我正在使用 SQL Server 2008,而且我对编写 sql 还是很陌生。我的目标是将表格中的数据导出为 xml 格式,以创建可在我们的网站中使用的 CAP xml 文件。目前,我只是在编写一些选择语句来以正确的格式检索数据。这是代码:

select (SELECT TOP 5 [Master_Incident_Number] AS incidents
,[Jurisdiction] AS jurisdiction
,[Response_Date] AS Date
FROM [ESCAD_DW_System].[dbo].[CurrentIncidents_V] Incident 
FOR XML PATH ('area'), type ) AS Alert for xml path (''), 
ROOT ('?xml version = "1.0" encoding = "UTF-8"?') 

但是,我收到“无效的 XML 标识符”错误?象征。任何人都可以帮忙吗?

4

1 回答 1

0

您不能使用ROOT添加 xml 编码标记。做到这一点的唯一方法是将 xml 输出转换为varchar(max)编码标记并在前面加上编码标记。请记住,FOR XML默认情况下输出是 UTF-16,因此您的 UTF-8 编码可能是不必要的。话虽如此,下面是一个使用 UDF 将 xml 转换为的简单示例varchar(max)

create function gimmexml()
returns varchar(max)
as
begin
    return (
        select a='some', b='xml'
        for xml path ('')           
    )
end
go

select '<?xml version="1.0" encoding="UTF-8"?>'+dbo.gimmexml();

结果:

<?xml version="1.0" encoding="UTF-8"?><a>some</a><b>xml</b>

进一步阅读: http: //www.devnewsgroups.net/group/microsoft.public.sqlserver.xml/topic60022.aspx http://msdn.microsoft.com/en-us/library/ms345137%28v=sql.90% 29.aspx

于 2012-04-20T02:41:52.667 回答