表名:conn_details 我有这个 xml,它存储在 Oracle 的 CLOB 列(conn_param)中。
<Parameters>
<Parameter Name="USER" Value="my_user"/>
<Parameter Name="PASSWORD" Value="my_password"/>
<Parameter Name="HOST" Value="google.com"/>
</Parameters>
我正在寻找将获取值或更新值的简单 SQL 查询。
例如: 我想获得一个 HOST 值,结果将是:google.com 我想用值 my_new_password 更新属性 PASSWORD,结果将是:
<Parameters>
<Parameter Name="USER" Value="my_user"/>
<Parameter Name="PASSWORD" Value="my_new_password"/>
<Parameter Name="HOST" Value="google.com"/>
</Parameters>
所以,我正在寻找一些简单的东西,我将提供某种 XPath 来满足我的需求。
最佳答案
要获取相关值,请使用此 SQL:
SELECT extract(xmltype(conn_param), '/Parameters/Parameter[@Name="HOST"]/@Value')
FROM conn_details;
要更新 xml 值,请使用此 SQL:
UPDATE conn_details SET conn_param = UPDATEXML(xmltype(conn_param),
'/Parameters/Parameter[@Name="HOST"]/@Value',to_char('google.com')).getClobVal()
关于sql - 如何在oracle中提取或更新xml属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30151325/