[英]How to select a particular Node name in XML using Oracle SQL query?
I need to select a particular Node name in the XML file using sql string? 我需要使用sql字符串在XML文件中选择一个特定的节点名称吗?
Sample XML structure
<Root>
<Body>
<Car> // This can be "Bike", "ship", "Train"... ect
<name value="figo"/>
</Car>
</Body>
</Root>
I want to run a query which which will fetch what Node name is present in XML "car" or "Train" or "Bike".. etc. 我想运行一个查询,该查询将获取XML“ car”或“ Train”或“ Bike” ..等中存在的节点名称。
Select * from TableA where.....? 从TableA中选择*。
TableA has column "Message" of type CLOB which stores the XML. TableA具有CLOB类型的“消息”列,用于存储XML。
-Praveen -普拉文
You can cast the CLOB type to XMLTYPE (or consider using an XMLTYPE column on the table). 您可以将CLOB类型转换为XMLTYPE(或考虑使用表上的XMLTYPE列)。 When dealing with XMLTYPEs you can then run XPATHs eg:
处理XMLTYPE时,可以运行XPATH,例如:
SELECT extractvalue(xml_col, '/*/Body/*/name/@value')
FROM TableA
or extract for xml fragments. 或提取xml片段。
EDIT: changed the 'Car' to * in XPath, having re-read the question. 编辑:重新阅读问题后,在XPath中将“汽车”更改为*。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.