Database/Oracle
[오라클] XML 데이터 파싱하기
데브포유
2016. 11. 4. 17:55
반응형
오라클에서 특정 컬럼에 저장되어 있는 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 ---
반응형