XML Type 셀렉트시 질문요~~!!? 1 3 2,279

by 블루오션 [SQL Query] [2012.04.16 15:44:54]


XML Type의 형태로 데이터가 들어가 있습니다.

<meta use="report">
    <meta-name>Type1</meta-name>
    <meta-value>REQ1</meta-value> 
</meta>
<meta use="report">
<meta-name>Type2</meta-name>
<meta-value>REQ3</meta-value> 
</meta>
<meta use="report">
<meta-name>Type3</meta-name>
<meta-value>REQ4</meta-value> 
</meta>

이런식으로 데이터가 들어 가 있다고 했을때 저 메타의 보면 report란것으로 반복이 되서 좀 애매해서그런대

여기서 Type2의 meta-value인 REQ3을 가져오려면 어떤식으로 해야 할까요? 조언좀 부탁드려요

extract( '/meta[@use="report"]/text()').getStringVal() 이걸로 하면 전부 긁어 오는거 같아서요.... 

고수님들 답변 부탁드려요~~!
by 마농 [2012.04.16 18:22:48]
WITH t AS
(
SELECT XMLTYPE('


Type1
REQ1


Type2
REQ3


Type3
REQ4


') v
FROM dual
)
SELECT ExtractValue(Value(p), '/meta/meta-value') "meta-value"
  FROM t
     , TABLE(XMLSequence(Extract(v, '/root/meta[@use="report"]'))) p
 WHERE ExtractValue(Value(p), '/meta/meta-name') = 'Type2'
;

by 마농 [2012.04.16 18:24:24]
  중간에 빈줄에 < / m e t a > 가 안보이네요.

by 블루오션 [2012.04.17 10:19:58]
마농님 답변 감사합니다.^^ 잘 되내요~~!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입