我正在使用SQL Server 2008,而且我是编写sql的新手。我的目标是将表中的数据导出为xml格式,以创建可在我们的网站中使用的CAP xml文件。目前,我只是编写一些select语句来检索正确格式的数据。这是代码:
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标识'错误符号。有人可以帮忙吗?
答案 0 :(得分: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