需要查询 XML 以获取 Oracle 11g 中的值

need to query XML for value in Oracle 11g

我有一个名为 parts 的 table 和一个名为 RunList_XML

的 XMLType 列

XML 有几个 Unit 标签示例 <Item> <Unit>420</Unit> </Item> <Item> <Unit>10</Unit> </Item> <Item> <Unit>0</Unit> </Item> 我想查询以获取所有零件的列表 单位为 420 我似乎无法弄清楚如何使用 = 420 或 = '420'

以下返回误报

select * from Parts P
   WHERE P.RunList_XML.extract('ArrayOfItem// /Unit/text()').getStringVal() like  '%420'

尝试使用 existsnode:

select * from Parts P
   WHERE existsnode(RunList_XML, 'ArrayOfItem//Item[Unit="420"]') = 1

existsnode returns 如果找到节点则为 1,否则为 0。