इस SO में कुछ विधियों का वर्णन किया गया है:
Oracle Pl/SQL:XMLTYPE नोड्स के माध्यम से लूप करें। ए>
अपडेट करें: यह काफी सरल है क्योंकि दोनों विधियां शुद्ध एसक्यूएल हैं (आप इस एसक्यूएल को पीएल/एसक्यूएल या किसी भी उपकरण से कॉल कर सकते हैं जो डीबी के साथ इंटरैक्ट करता है):
SQL> WITH openedXml AS (
2 SELECT extractvalue(column_value, '/theRow/First') FIRST,
3 extractvalue(column_value, '/theRow/Last') LAST,
4 to_number(extractvalue(column_value, '/theRow/Age')) Age
5 FROM TABLE(XMLSequence(XMLTYPE('<theRange>
6 <theRow><First>Bob</First><Last>Smith</Last><Age>30</Age></theRow>
7 <theRow><First>Sue</First><Last>Jones</Last><Age>34</Age></theRow>
8 <theRow><First>John</First><Last>Bates</Last><Age>40</Age></theRow>
9 </theRange>').extract('/theRange/theRow')))
10 )
11 SELECT *
12 FROM openedxml
13 WHERE age BETWEEN 30 AND 35;
FIRST LAST AGE
--------- -------- -----
Bob Smith 30
Sue Jones 34