解析存储在Oracle Table上的XML字符串

时间:2011-01-17 16:56:23

标签: sql xml oracle

我有一个类似于存储在我的数据库中的XML字符串:

<?xml version="1.0" encoding="utf-8"?>
<AddressMaintenance>
<Label Name="lblAddress11">Address Line 1</Label><TextBox Name="txtAddress11">Zuellig Korea</TextBox>
</AddressMaintenance>

您知道是否有办法使用XMLQuery或SQL提取 Zuelling Korea 的值?我无法创建临时表,因为它是一个验证环境,所以我只能读取该值。我知道可以使用reg exp,但是,如果可能的话,我会尝试使用XML。

感谢,
安德烈

1 个答案:

答案 0 :(得分:5)

如果它存储在表上的XMLTYPE中,您可以使用Oracle XML函数使用XPath提取它:

SELECT
  extractvalue(xmlcol, '/*/TextBox[@Name=''txtAddress11'']') txtaddress
FROM yourtable

根据您的需要调整XPath。

请参阅ExtractValue documentation或研究其他Oracle XML函数。


我应该注意11g及更高版本,不推荐使用extractvalue,你应该使用XMLQuery