gpt4 book ai didi

sql - 在 Oracle SQL 中选择 xpath 值作为单独的行

转载 作者:数据小太阳 更新时间:2023-10-29 01:45:21 27 4
gpt4 key购买 nike

我需要从存储在 Oracle 数据库的 CLOB 列中的 XML 中选择一些值。我能想到的最好的是:

select extract(xmltype(COLUMN), 'xpath-expression').getStringVal() as XMLVAL from TABLE t;

问题在于,当 XPATH 选择多个节点时,这些值会被串联起来。我需要将每个选定的节点放在单独的行中。显然,连接必须发生在 getStringVal() 中,我使用它是因为我的客户端中需要有字符串(而不是 XMLType)。我应该使用什么来代替 getStringVal()?

编辑:注意这里有一个类似的问题:Oracle Pl/SQL: Loop through XMLTYPE nodes - 但我无法将其应用到我的案例中。它使用了两个不同的XPATH表达式,分离的原理不明确。

EDIT2:XML 非常复杂,但基本上我需要在中找到“某些值”条目

<string name="SOME_KEY" value="some value"/>

隐藏在许多其他元素之下的元素。我使用 XPATH //*[@name="SOME_KEY"]/@value,它成功地找到了所有具有 SOME_KEY 属性的 XML 元素的值属性。

最佳答案

试试这个。

SELECT EXTRACTVALUE (x.COLUMN_VALUE, 'xpath-expression')
FROM TABLE (
SELECT XMLSEQUENCE (
xmltype (column).EXTRACT ('xpath-expression'))
FROM t) x;

sample 在 http://sqlfiddle.com/#!4/87af2/1

关于sql - 在 Oracle SQL 中选择 xpath 值作为单独的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16735885/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com