【问题标题】:XML query data in columns列中的 XML 查询数据
【发布时间】:2017-03-23 14:33:17
【问题描述】:

我有一个这样的 xml:我想以主标记 <queue></queues> 之间的每个字段连续显示的方式提取值。 我发现了许多如何执行“选择提取”的示例,但没有像我的 xml 那样(每个字段都没有被称为 - 即 - “值”而是值,所以我只是不知道如何阅读它们。

    <?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>

【问题讨论】:

  • 在我的最后一个解释行中,我的意思是:找到的 XML 示例将引用作为字段名称 =“值名称”-值结构(我的 xml)针对值名称-值结构(我能够找到)

标签: xml plsql extract


【解决方案1】:
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()'

) 

【讨论】:

  • 这行得通!但是我在 Oracle 中创建的 XML 表中包含的 XML 是什么?它保留在 CLOB 字段中。
  • select ... from your_table, xmltype('...' passing xmltype(your_clob_column) .....)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-16
相关资源
最近更新 更多