SQL Server 2005에서 XML 출력 형식 지정하기: FOR XML EXPLICIT
가이드
SQL Server를 사용할 때 쿼리 결과를 XML 형식으로 변환해야 하는 경우가 있을 수 있습니다. 특정 XML 구조를 달성하려고 할 때 흔히 발생하는 문제 중 하나가 있습니다. 예를 들어, 특정 형식을 유지하면서 출력을 다른 저장 프로시저로 전달해야 할 수도 있습니다. 이 블로그 게시물에서는 FOR XML EXPLICIT
절을 사용하여 SQL Server 2005에서 XML 출력을 올바르게 형식 지정하는 방법을 살펴보겠습니다.
문제: 원하는 XML 구조
먼저 문제를 분석해 보겠습니다. 아래와 같은 구조의 테이블을 고려해 보십시오:
LocationID | AccountNumber |
---|---|
long-guid-here | 12345 |
long-guid-here | 54321 |
XML로 출력을 전달하려면, XML 형식이 다음과 같아야 합니다:
<root>
<clientID>12345</clientID>
<clientID>54321</clientID>
</root>
그러나 초기 시도에서 얻은 결과는 다음과 같았습니다:
<root clientID="10705"/>
명백히 원하는 출력을 얻지 못하고 있습니다. 이 문제를 해결해 보겠습니다.
해결책: SQL 쿼리 분석
원하는 XML 형식을 달성하려면 SQL 쿼리를 조정해야 합니다. 기대하는 출력을 얻기 위한 단계별 가이드는 다음과 같습니다.
단계 1: SQL 쿼리 수정
초기 SQL 쿼리는 약간의 수정이 필요합니다. 다음 문장으로 교체하십시오:
SELECT
1 AS Tag,
0 AS Parent,
AccountNumber AS [Root!1!AccountNumber!element]
FROM
Location.LocationMDAccount
WHERE
LocationID = 'long-guid-here'
FOR XML EXPLICIT
단계 2: 쿼리 구성 요소 이해하기
- SELECT 문: 원하는 데이터를 선택하는 것으로 시작합니다. 이 경우
AccountNumber
입니다. - Tag 및 Parent:
Tag
및Parent
값은 XML 계층 구조를 올바르게 구성하는 데 필수적입니다. 여기서1
과0
은 루트 수준을 나타내는 데 사용됩니다. - XML 형식 지정:
AS [Root!1!AccountNumber!element]
는 매우 중요합니다. 이는 각AccountNumber
에 대해 XML 요소를 생성하는 것을 목표로 합니다.
단계 3: 쿼리 실행
수정된 SQL 쿼리를 SQL Server 데이터베이스에서 실행하십시오. 모든 것이 계획대로 진행된다면, 이제 XML 출력이 올바르게 구성되어 다음과 같이 보일 것입니다:
<root>
<AccountNumber>12345</AccountNumber>
<AccountNumber>54321</AccountNumber>
</root>
결론
원하는 XML 형식을 달성하는 것은 올바른 SQL 쿼리로 간단할 수 있습니다. SQL Server 2005의 FOR XML EXPLICIT
절은 데이터를 XML로 변환하는 방법에 대한 세부적인 제어를 허용합니다. 쿼리를 조정하여 올바른 Tag
, Parent
및 형식 지정 구성 요소를 포함함으로써, 필요에 맞게 XML 출력을 성공적으로 형식 지정할 수 있습니다.
이 블로그 게시물에 설명된 단계를 따르면 이제 SQL Server 2005 출력 내용을 필요한 XML 구조로 형식 지정할 수 있을 것입니다. 쿼리를 즐기세요!