2012-04-20 3 views
1

SQL Server 2008을 사용하고 있으며 SQL을 작성하는 데있어 새로운 경험이 있습니다. 필자의 목표는 테이블의 데이터를 xml 형식으로 내보내 웹 사이트에서 사용할 수있는 CAP XML 파일을 만드는 것입니다. 현재 올바른 형식으로 데이터를 검색하기 위해 select 문을 작성하고 있습니다. 다음은 코드입니다.xml 파일을 생성하기 위해 sql에서 특수 문자를 이스케이프 처리합니다.

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

ROOT을 사용하여 xml 인코딩 태그를 추가 할 수 없습니다. 이를 수행하는 유일한 방법은 XML 출력을 varchar(max)으로 변환하고 인코딩 태그 앞에 추가하는 것입니다. FOR XML 출력은 기본적으로 UTF-16이므로 UTF-8 인코딩이 필요하지 않을 수도 있습니다.

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, 여기 varchar(max)로 XML을 변환하는 UDF를 사용하는 간단한 예입니다 가졌어요. co.kr/ko-kr/library/ms345137 % 28v = sql.90 % 29.aspx

관련 문제