재우니의 블로그

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)