티스토리 뷰

반응형

오라클에서 특정 컬럼에 저장되어 있는 XML를 파싱하여 값을 가져오는 예제입니다.

XML 형식

<BINDS>

<BIND NAME = '' > 10000 </BIND>

</BINDS>


1. 예제 테이블 생성

CREATE TABLE TT_XML

(

SEQ  NUMBER(10),

XML_DATA VARCHAR2(4000),

PRIMARY KEY(SEQ)

)


2. XML 데이터 넣기 

INSERT INTO TT_XML VALEUS(1, '<BINDS><BIND NAME = "컴퓨터" > 10000 </BIND></BINDS>');

COMMIT;


3. XML 파싱해서 특정 값을 컬럼 형태로 출력

(XML 파싱할때는 대소문자 가림)


SELECT T1.SEQ

         ,T1.XML_DATA

         ,V1.NAME

         ,V1.VALUE

FROM TT_XML T1

        ,XMLTABLE( '/BINDS/BIND' PASSING XMLTYPE(T1.XML_DATA)

                        COLUMNS NAME  VARCHAR2(50)   PATH '@NAME',     --- 속성

                                     VALUE  NUMBER         PATH '.'              --- 값

                        ) V1



--- EOF ---



반응형