MS-SQL 2005 에서 XML 값을 가지고 어떻게 파싱하여 값을 추출하는지를 보여줍니다.
간단히 SELECT 구문으로 추출해 오는 예제를 살펴볼까 합니다.
SQL Server 실행 시간: CPU 시간 = 0ms, 경과 시간 = 1ms.
SQL Server 구문 분석 및 컴파일 시간: CPU 시간 = 0ms, 경과 시간 = 1ms.
SQL Server 실행 시간: CPU 시간 = 0ms, 경과 시간 = 1ms.
(1개 행 적용됨)
(1개 행 적용됨)
SQL Server 실행 시간: CPU 시간 = 62ms, 경과 시간 = 204ms.
SQL Server 구문 분석 및 컴파일 시간: CPU 시간 = 0ms, 경과 시간 = 1ms.
SQL Server 실행 시간: CPU 시간 = 0ms, 경과 시간 = 1ms.
xml Reader 부분이 하는 작업이 대다수 인데요. 그리 많은 IO 나 CPU 를 차지하지 않습니다.
만약에 아래와 같은 XML 형태로 되어 있다면 어떻게 접근할까요?
해당 접근은 배열처럼 접근하시면 됩니다.
세번째 노드인 "포도1" 을 접근할려면... 먼저 생각해야 할 부분이, 같은 노드선상에 2개의 그룹이 있는것입니다.
이는 TABLE 구조로 생각을 한다면 2줄이라는 의미이지요. 따라서 2번째 줄이라는 부분을 간단히 기술해주면 쉽게 접근하여 값을 추출해 올 수 있답니다.
a.b.value('Fruits[2]/Fruits3[1]','varchar(10)') AS Fruits3,
참~~~ 쉽졍???
참고자료 : 중앙대학교 SQL 의 XML 관련 PPT 자료
POSTED BY 심재운(shimpark@gmail.com)