需要查询 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。
我有一个名为 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。