需要Oracle中更新CLOB字段(xml类型)的帮助吗

需要Oracle中更新CLOB字段(xml类型)的帮助吗,xml,oracle,Xml,Oracle,我有一个带有CLOB的列,它的数据类型为XML: <?xml version='1.0' encoding='UTF-8'?> <testRules version="1.0"> <rule id="1839" name="remit_amount.minimum.dollar_amount"> <value order="1" modifiedBy="admin" modifiedDate="04/10/2012 15:04:4

我有一个带有
CLOB
的列,它的数据类型为
XML

<?xml version='1.0' encoding='UTF-8'?>
<testRules version="1.0">
    <rule id="1839" name="remit_amount.minimum.dollar_amount">
        <value order="1" modifiedBy="admin" modifiedDate="04/10/2012 15:04:49">5.00</value>
    </rule>
    <rule id="1840" name="remit_amount.maximum.dollar_amount">
        <value order="1" modifiedBy="admin" modifiedDate="04/10/2012 15:04:49">1000.00</value>
    </rule>
</testRules>

5
1000

现在我想更新
,您可以参考下面的示例并替换表的详细信息--

创建表t1(x clob);
插入
转换为t1值
(
'      
公共关系
A.
B
C
'
);
犯罪
更新t1
SET x=updatexml(xmltype.createxml(x),'/Test/GROUP_NAME/text()','CCC')。getclobval()
其中ExtractValue(xmltype(x),'/Test/GROUP_NAME/@a')='asdsada';
犯罪
这将为您提供所需的输出。

您可以使用

请注意,XPATH表达式中的谓词将更新限制为正确的元素。 还请注意,此语句更新表中的所有行,因此在适当的情况下添加WHERE条件

 <?xml version="1.0" encoding="UTF-8"?>
 <testRules version="1.0">
   <rule id="1839" name="remit_amount.minimum.dollar_amount">
     <value order="1" modifiedBy="admin" modifiedDate="04/10/2012 15:04:49">1500.00
     </value>
   </rule>
   <rule id="1840" name="remit_amount.maximum.dollar_amount">
     <value order="1" modifiedBy="admin" modifiedDate="04/10/2012 15:04:49">1000.00
     </value>
   </rule>
 </testRules>

1500
1000
   UPDATE test_xml SET col =
   UPDATEXML(xmltype(col),
   '/testRules/rule[@id="1839"]/value/text()','1500.00').getClobval();  
 <?xml version="1.0" encoding="UTF-8"?>
 <testRules version="1.0">
   <rule id="1839" name="remit_amount.minimum.dollar_amount">
     <value order="1" modifiedBy="admin" modifiedDate="04/10/2012 15:04:49">1500.00
     </value>
   </rule>
   <rule id="1840" name="remit_amount.maximum.dollar_amount">
     <value order="1" modifiedBy="admin" modifiedDate="04/10/2012 15:04:49">1000.00
     </value>
   </rule>
 </testRules>