【问题标题】:Fetch xml from xmltype in oracle在 oracle 中从 xmltype 中获取 xml
【发布时间】:2021-08-18 11:36:29
【问题描述】:

我有一个表,其中有一列 xmltype。我想为每一行获取 xml 格式的数据。我不知道 xml 内容中使用的标签。

【问题讨论】:

  • edit 使用minimal reproducible example 提出您的问题,包括:您的表的CREATE TABLE 语句;一些样本数据的INSERT 语句;该样本输出的预期输出;关于如何从样本数据到输出的完整描述;和你的尝试解决方案。
  • 如果您只想将XMLTYPE 转换回字符串,那么此问题与stackoverflow.com/q/35039363/1509264 重复

标签: oracle xmltype


【解决方案1】:

我假设您要查询文档中的每个 XML 片段。您可以使用:

SELECT x.value
FROM   TABLE_NAME t
       CROSS JOIN
       xmltable(
         '//*'
         passing t.xml
         COLUMNS
           value XMLTYPE path '.'
       ) x

其中,对于样本数据:

CREATE TABLE table_name ( xml ) AS
SELECT XMLTYPE( '<root><a>Value A</a><b>Value B</b><c><d>Value D</d><e><f>Value F</f></e></c></root>' )
FROM   DUAL;

输出:

VALUE
<root><a>Value A</a><b>Value B</b><c><d>Value D</d><e><f>Value F</f></e></c></root>
<a>Value A</a>
<b>Value B</b>
<c><d>Value D</d><e><f>Value F</f></e></c>
<d>Value D</d>
<e><f>Value F</f></e>
<f>Value F</f>

db小提琴here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 2022-01-19
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    相关资源
    最近更新 更多