0
Oracle 10g 데이터베이스에서 XMLTABLE Function을 사용하고 XML에서 값을 Oracle Table로 추출하려고합니다.Oracle DB - XMLTABLE을 사용하여 XML 데이터 추출
SELECT *
FROM xmltable(
xmlnamespaces ('http://www.cool.com/totem/1.1' AS "n1"), '/n1:totem/n1:results'
PASSING xmltype.createxml(('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<totem xmlns="http://www.cool.com/totem/1.1">
<results>
<valuationDate>2014-07-31</valuationDate>
<clientID>220</clientID>
<energy>
<underlier>
<name>CO2 CER</name>
<group>European Emissions</group>
<units>EUR/MT</units>
<pricingTime>LDN 17:00</pricingTime>
<instrument>
<period>Month</period>
<startDate>2014-12-01</startDate>
<endDate>2014-12-31</endDate>
<type>Forward</type>
<price>0.25852</price>
<priceOut>r</priceOut>
<contributors>15</contributors>
</instrument>
</underlier>
<underlier>
<name>CO2 CER</name>
<group>European Emissions</group>
<units>EUR/MT</units>
<pricingTime>LDN 17:00</pricingTime>
<instrument>
<period>Month</period>
<startDate>2014-12-01</startDate>
<endDate>2014-12-31</endDate>
<type>Forward</type>
<price>0.25852</price>
<priceOut>r</priceOut>
<contributors>15</contributors>
</instrument>
</underlier>
</energy>
</results>
</totem>'
))
COLUMNS valuationDate varchar2(500) PATH 'n1:valuationDate',
clientID varchar2(500) PATH 'n1:clientID',
name varchar2(500) PATH 'n1:energy/n1:underlier/n1:name',
group1 varchar2(500) PATH 'n1:energy/n1:underlier/n1:group',
units varchar2(500) PATH 'n1:energy/n1:underlier/n1:units',
pricingTime varchar2(500) PATH 'n1:energy/n1:underlier/n1:pricingTime',
period varchar2(500) PATH 'n1:energy/n1:underlier/n1:instrument/n1:period',
startDate varchar2(500) PATH 'n1:energy/n1:underlier/n1:instrument/n1:startDate',
endDate varchar2(500) PATH 'n1:energy/n1:underlier/n1:instrument/n1:endDate',
type varchar2(500) PATH 'n1:energy/n1:underlier/n1:instrument/n1:type',
price varchar2(500) PATH 'n1:energy/n1:underlier/n1:instrument/n1:price',
priceOut varchar2(500) PATH 'n1:energy/n1:underlier/n1:instrument/n1:priceOut',
contributors varchar2(500) PATH 'n1:energy/n1:underlier/n1:instrument/n1:contributors'
) AS instrument
O/P는 다음과 같습니다
XMLNLS_NS VALUATIONDATE CLIENTID NAME GROUP1 PERIOD STARTDATE ENDDATE TYPE PRICE PRICEOUT CONTRIBUTORS
2014-07-31 220
가 어떻게 태그의 나머지 값을 채울/추출 할 수 있습니다?
편집 : 감사. 하지만 하나 이상의 underliner있을 때, 나는 다음과 같은 얻을 오류 ORA-19279 : XPTY0004 - XQuery를 동적 유형 불일치 : 싱글 순서 기대는 - 다중 항목 순서
감사 Dirkk ... 나는 여전히하는 문제가되어야한다. 오류 : ORA-19279 : XPTY0004 - XQuery 동적 유형 불일치 : 예상되는 싱글 톤 시퀀스 - 다중 항목 시퀀스 –
오류 메시지와 사용자 자신이 말하길 : 여러 개의 'underlier' 요소가 있지만 오라클은 하나를 기대합니다. 네가 필요로하는 것이 지금은 없어. 첫 번째 것을 원한다면, 사용자'underlier [1]' – dirkk
어떻게 모든 것을 얻을 수 있습니까? –