如何使用 Oracle XMLTable 检索标签内的 value/condition?

How to use Oracle XMLTable to retrieve the value/condition inside a tag?

我有一个 SQL 使用 XMLTable 来检索标签值,例如 Tag>Value

<ns:T1>
    <ns:T2 remove="true"></ns:T2>
<ns:T1>

方法大致相同,只是使用 XPath 语法来匹配属性。为下图省略名称空间(为简单起见):

select *
from xmltable(
    '/'
    passing xmltype('<T1><T2 remove="true"></T2></T1>')
    columns remove varchar2(6) path '/T1/T2/@remove')
;

REMOVE
------
true

请注意,在 Oracle SQL 中没有布尔值,因此您只能将其作为字符串检索,而不是布尔值。条件下需要的话,不能说where REMOVE;你需要写 where REMOVE = 'true'