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

Sql 解析存储在Oracle表上的XML字符串,sql,xml,oracle,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>

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

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

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

谢谢,

Andrea

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

SELECT
  extractvalue(xmlcol, '/*/TextBox[@Name=''txtAddress11'']') txtaddress
FROM yourtable
调整XPath以满足您的需要

查看或研究其他Oracle XML函数



我可能应该注意到,11g及更高版本的extractvalue已被弃用,您应该使用

我认为xmlcol需要是一个Xml数据类型,因为当我尝试执行SQL查询时,它返回ORA-00932:不一致的数据类型:预期-得到-啊,对不起,我觉得该列是XMLTYPE。如果您有一个VARCHAR2/字符串,那么可以使用XMLTYPE()函数。因此,您的查询将从yourtable+1变成selectextractValue(xmltype(xmlcol),‘xpath’),查找完全相同的内容