본문 바로가기

IT

[MSSQL] XML DATA 파싱 및 저장 프로그져 이용 하여 테이블로 변환하여 사용하기!


MSSQL 2005 이상의 버전에서 사용할수 있는 XML  DATA를 테이블로 조회 하는 프로지져 입니다.

사용법은 아래와 같습니다.

1. 변수를 정의 정의합니다.


-- XML 정보가 들어갈 XML 데이터
DECLARE @XMLDATA varchar(5000)
-- 생성된 문서의 핸들 // 정수만 가능!
DECLARE @docHandle int

-- 데이터를 넣을 테이블을 정의
DECLARE @TEST TABLE
(
 SEQ  INT  IDENTITY (1,1) ,
 WORK VARCHAR(40)
);


2. 테스트로 사용할 XML DATA를 정의 합니다.

--XML 데이터를 정의  
SET @XMLDATA = '
<RT>
 <CMD>
  <WORK>11111</WORK>
 </CMD> 
 <CMD>
  <WORK>2222</WORK>  
 </CMD>
</RT> 
'


3. XML 데이터를 가져와서 핸들링 합니다.

 
--XML 텍스트를 읽는다 문서 핸들 생성
EXEC sp_xml_preparedocument @docHandle OUTPUT, @XMLDATA

-- OPENXML  을 사용하여 정의한 테이블 변수에 넣는다.
INSERT INTO @TEST
SELECT *
FROM OPENXML (@docHandle, '/RT/CMD',3)
WITH (
 WORK VARCHAR(40) 
)
--XML 문서 제거
문서 핸들을 제거
EXEC sp_xml_removedocument @docHandle



4. 결과

 SEQ WORK 
 1  11111
 2  2222



sp_xml_preparedocument는 한 번에 열 수 있는 요소 수를 최대 256개로 제한합니다.

참고 : MSSQL 도움말

 

* 이 글은 제가 기존에 운영했던 블러그에서 가져온글입니다.