Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: How to transform XML-data to a relational view?
Here is an example:
ORA92> select * from t1;
A
1
<root>
<level id="ABCD" type="01"> <item no="123">
<url>http://url1.com</url>
<desc>This is link1</desc>
</item> <item no="234">
<url>http://url2.com</url>
<desc>This is link2</desc>
</item> </level> <level id="BCDE" type="01"> <item no="123">
<url>http://url3.com</url>
<desc>This is link3</desc>
</item> </level>
ORA92> select a, extract(value(d1),'/level/@id').getStringVal() id,
2 extract(value(d1),'/level/@type').getStringVal() mytype, 3 extract(value(d2),'/item/@no').getStringVal() mynum, 4 extract(value(d2),'/item/url/text()').getStringVal() url, 5 extract(value(d2),'/item/desc/text()').getStringVal()descr,
A ID MYTYPE MYNUM URL DESCR ROWNUM ---------- ------ ------ -------- ------------------ -------------------- ---------- 1 ABCD 01 123 http://url1.com This is link1 1 1 ABCD 01 234 http://url2.com This is link2 2 1 BCDE 01 123 http://url3.com This is link3 3
ORA92> desc t1
Name
Null? Type