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

And*_*rdi 4 xml sql oracle

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

<?xml version="1.0" encoding="utf-8"?>
<AddressMaintenance>
<Label Name="lblAddress11">Address Line 1</Label><TextBox Name="txtAddress11">Zuellig Korea</TextBox>
</AddressMaintenance>
Run Code Online (Sandbox Code Playgroud)

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

谢谢,
安德里亚

Chr*_*lls 5

如果将其存储在表的XMLTYPE中,则可以使用Oracle XML函数通过XPath提取它:

SELECT
  extractvalue(xmlcol, '/*/TextBox[@Name=''txtAddress11'']') txtaddress
FROM yourtable
Run Code Online (Sandbox Code Playgroud)

调整XPath以适合您的需求。

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


我可能应该注意,不建议使用11g及更高版本的extractvalue,而应使用XMLQuery

  • 抱歉,我印象中该列是XMLTYPE。如果您有VARCHAR2 /字符串,则可以使用XMLTYPE()函数。因此,您的查询将从您的表中变为SELECT extractvalue(xmltype(xmlcol),'xpath') (2认同)