我有一个像这样的xml:我希望以主标记<queue></queues>
之间的每个字段连续显示的方式提取值。
我找到了很多关于如何选择&#34; select extract&#34;但没有像我的xml(其中每个字段都没有被调用 - 即 - &#34;值&#34;但是值,所以我只是不知道如何阅读它们。
<?xml version="1.0" encoding="UTF-8"?>
<queues>
<queue>
<Field name="queue_date">2016-09-20</Field>
<Field name="queue_id">6180</Field>
<Field name="queue_activate_time"/>
<Field name="queue_deactivate_time"/>
<Field name="provider_id">19</Field>
<Field name="provider_source">Nome Cognome</Field>
<Field name="provider_ext_id">ncognome</Field>
<Field name="provider_pool">18</Field>
<Field name="provider_timezone">Central Europe</Field>
<Field name="calendar_start_time">08:00:00</Field>
<Field name="calendar_end_time">17:00:00</Field>
</queue>
</queues>
答案 0 :(得分:0)
select * from xmltable('//queues/queue/Field' passing xmltype('<?xml version="1.0" encoding="UTF-8"?>
<queues>
<queue>
<Field name="queue_date">2016-09-20</Field>
<Field name="queue_id">6180</Field>
<Field name="queue_activate_time"/>
<Field name="queue_deactivate_time"/>
<Field name="provider_id">19</Field>
<Field name="provider_source">Nome Cognome</Field>
<Field name="provider_ext_id">ncognome</Field>
<Field name="provider_pool">18</Field>
<Field name="provider_timezone">Central Europe</Field>
<Field name="calendar_start_time">08:00:00</Field>
<Field name="calendar_end_time">17:00:00</Field>
</queue>
</queues> ')
columns
name varchar2(100) path './@name'
, value varchar2(100) path'./text()'
)