oracle xml 관련 질문 드립니다...(도와주세요..) 0 6 1,392

by juniza82 [SQL Query] xml [2014.02.11 15:53:10]


1.PNG (6,180Bytes)
2.PNG (14,553Bytes)

안녕하세요..

제 머리로는 어떻게 해결을 해야 할지를 몰라서 이렇게 문의글 올리게 되었습니다.

일단  제가 문제라고 생각하는 부분은


이미지에 나와있는 형식인데
XML 컬럼안에는


<?xml version="1.0" encoding="utf-8"?>
<content xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:dli="http://metadata.solars.com/DLi/XMLSchema">
  <dc:type>
    <dli:Class>구루비1</dli:Class>
  </dc:type>
  <dc:title>
    <dli:title>올림픽 효과1</dli:title>
  </dc:title>
  <dc:creator>
    <dli:name>-</dli:name>
  </dc:creator>
  <dc:publisher>
    <dli:pyb>20130101</dli:pyb>
    <dli:pubYear>20130101</dli:pubYear>
  </dc:publisher>
  <dc:source>
    <dli:provider>682호</dli:provider>
    <dli:url>주소1</dli:url>
  </dc:source>
  <dc:description>
    <dli:note>설명1</dli:note>
  </dc:description>
</content>

식의 문장이 들어가 있습니다.

이걸 제가 쿼리로 이미지2 식으로 뽑고 싶습니다.

도와주세요

PS :  제가 처음 글을 쓰다보니 이미지가 1번 2번의 순서 없이 올라가게 되었네요..
죄송합니다.

다음에는 더 이쁘게 질문 올리도록 할꼐요~
by DarkBee [2014.02.11 16:16:52]
SELECT id
     , create_dt 
     , t.xmlcol.extract('/dc:type/dli:Class/text()').getStringVal()
     , t.xmlcol.extract('/dc:title/dli:title/text()').getStringVal()
     , t.xmlcol.extract('/dc:creator/dli:name/text()').getStringVal()
     , t.xmlcol.extract('/dc:publisher/dli:pyb/text()').getStringVal()
     , t.xmlcol.extract('/dc:publisher/dli:pubYear/text()').getStringVal()     
     , t.xmlcol.extract('/dc:source/dli:provider/text()').getStringVal()
     , t.xmlcol.extract('/dc:source/dli:url/text()').getStringVal()
     , t.xmlcol.extract('/dc:description/dli:note/text()').getStringVal()
     , cls_id
     , cls_nm
  FROM t 

테스트 환경이 되질 않아 테스트 확인이 되지 않네요.

by juniza82 [2014.02.11 16:35:06]

안되네요....ㅠㅅㅠ


by DarkBee [2014.02.11 16:45:00]
어떻게 안되는데요.

by juniza82 [2014.02.11 16:51:13]

저렇게 돌리며은 일단 
t.xmlcol.extract('/dc:type/dli:Class/text()').getStringVal()
에서 xmlcol이 컬럼을 가르키시는거 같은데 xml로 수정해서 돌렸구요.

t.xml.extract('/dc:type/dli:Class/text()').getStringVal()
상태로 돌리면은
ORA-00904:"t"."xml"."exctract" invalid identifier 에러가 뜨네요.


by DarkBee [2014.02.11 16:57:55]
, extract (value(t), '//dli:Class')
extract (value(t), '//dli:title')

이런식으로도 해보세요

by DarkBee [2014.02.11 17:01:23]
환경이 되시는분이 혹시 답변 달아주시면 좋겠지만, 안된다면

오라클 xml extractvalue    오라클 xml extract  로 검색하시면

원하시는 검색을 할수 있을거 같습니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입