Мн Oracle / SQL: Цикл через узлы XMLTYPE

В то время как цикл Loop и For одинаковы

http://www.mkyong.com/java/ while-loop-for-loop-and-iterator-performance-test-java/

34
задан pistacchio 12 June 2009 в 09:49
поделиться

2 ответа

Вы можете перебирать элементы, используя 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
20
ответ дан 27 November 2019 в 17:02
поделиться

Вы можете использовать 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'
               )
16
ответ дан 27 November 2019 в 17:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: