В то время как цикл Loop и For одинаковы
http://www.mkyong.com/java/ while-loop-for-loop-and-iterator-performance-test-java/
Вы можете перебирать элементы, используя EXTRACT
и XMLSequence
(разбивает XML на отдельные фрагменты - здесь пользователи) следующим образом:
SQL> SELECT extractvalue(column_value, '/user/name') "user"
2 FROM TABLE(XMLSequence(XMLTYPE(
3 '<?xml version="1.0"?>
4 <users>
5 <user>
6 <name>user1</name>
7 </user>
8 <user>
9 <name>user2</name>
10 </user>
11 <user>
12 <name>user3</name>
13 </user>
14 </users>').extract('/users/user'))) t;
user
--------
user1
user2
user3
Вы можете использовать XQuery. Ознакомьтесь с оператором select ниже. v_xml_doc - это переменная XMLTYPE, содержащая данные XML.
select name
from XMLTable('for $i in /users/user
return $i'
passing v_xml_doc
columns name varchar2(200) path 'name'
)