如何在oracle server中更改表中xml字段的值

如何在oracle server中更改表中xml字段的值,xml,oracle,Xml,Oracle,我尝试将oracle server中名为HistEvents的表中名为ANI_-FATHER的字段的值从“DAD01”更改为“DAD01” 在表HistEvents中名为HEV\u DETAILS的XML字段中找到了字段aniu-FATHER,我不知道如何更改它的值 <?xml version = '1.0' encoding = 'UTF-8'?><BIRTH Id="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc

我尝试将oracle server中名为
HistEvents
的表中名为
ANI_-FATHER
的字段的值从“DAD01”更改为“DAD01”

在表
HistEvents
中名为
HEV\u DETAILS
的XML字段中找到了字段
aniu-FATHER
,我不知道如何更改它的值

<?xml version = '1.0' encoding = 'UTF-8'?><BIRTH Id="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <ANI_BIRTHDATE xsi:type="xsd:datetime">2015-12-31T00:00:00</ANI_BIRTHDATE>
   <ANI_MOTHER>MOM01</ANI_MOTHER>
   <ANI_FATHER>DAD01</ANI_FATHER>
   <ANI_NUMGEN>F1</ANI_NUMGEN>
   <ANI_NAIVE xsi:type="xsd:boolean">1</ANI_NAIVE>
   <ANI_DATEIN xsi:type="xsd:datetime">2015-12-31T00:00:00</ANI_DATEIN>
</BIRTH>


2015-12-31T00:00:00
MOM01
DAD01
一层楼
1.
2015-12-31T00:00:00
并检查结果

 SELECT XMLSERIALIZE(DOCUMENT XML_COL) FROM TEST_XML WHERE ID= 1;
1) 推荐的方式

UPDATE test_xml SET xml_col =
  XMLQuery('copy $tmp := . modify
            (for $i in $tmp/BIRTH/ANI_FATHER/text()  
             return replace value of node $i
                    with ''neW_VALUE2'') 
            return $tmp'
           PASSING xml_col RETURNING CONTENT)
  WHERE ID =1;

并检查结果

 SELECT XMLSERIALIZE(DOCUMENT XML_COL) FROM TEST_XML WHERE ID= 1;
1) 推荐的方式

UPDATE test_xml SET xml_col =
  XMLQuery('copy $tmp := . modify
            (for $i in $tmp/BIRTH/ANI_FATHER/text()  
             return replace value of node $i
                    with ''neW_VALUE2'') 
            return $tmp'
           PASSING xml_col RETURNING CONTENT)
  WHERE ID =1;


你好,ArkadiuszŁukasiewicz,非常感谢您的回复和教程链接。我遵循你的脚本&它运行得非常完美。再次感谢你的帮助!Ed.JdHi ArkadiuszŁukasiewicz,非常感谢您的回复和教程链接。我遵循你的脚本&它运行得非常完美。再次感谢你的帮助!埃德·法学博士