2012-03-26 13 views
0

iは、XMLType列(Oracle 10gの)私は子供の名前を更新するにはどうすればよいXMLTypeのPL/SQLのUPDATE子

<DATA> 
    <CHILDRENS> 
    <CHILDRENS_DEF lname="smith"> 
     <CHILD_KOL no="1" name="Id" desc="Id" typ="NUMBER"/> 
     <CHILD_KOL no="2" name="Fname" desc="Fname" typ="VARCHAR2"/> 
    </CHILDRENS_DEF> 
    <CHILDRENS_DATA> 
     <CHILD_DATA no="1"> 
     <CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE> 
     <CHILD_COL_VALUE no="2" name="Fname">Christopher</CHILD_COL_VALUE> 
     </CHILD_DATA> 
     <CHILD_DATA no="2"> 
     <CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE> 
     <CHILD_COL_VALUE no="2" name="Fname">Alice</CHILD_COL_VALUE> 
     </CHILD_DATA> 
     <CHILD_DATA no="3"> 
     <CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE> 
     <CHILD_COL_VALUE no="2" name="Fname">John</CHILD_COL_VALUE> 
     </CHILD_DATA> 
    </CHILDRENS_DATA> 
    </CHILDRENS> 
    <CHILDRENS> 
    <CHILDRENS_DEF lname="mushroom"> 
     <CHILD_KOL no="1" name="Id" desc="Id" typ="NUMBER"/> 
     <CHILD_KOL no="2" name="Fname" desc="Fname" typ="VARCHAR2"/> 
    </CHILDRENS_DEF> 
    <CHILDRENS_DATA> 
     <CHILD_DATA no="1"> 
     <CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE> 
     <CHILD_COL_VALUE no="2" name="Fname">Arthur</CHILD_COL_VALUE> 
     </CHILD_DATA> 
    </CHILDRENS_DATA> 
    </CHILDRENS> 
</DATA> 

、CHILDRENS_DEFのLNAME =スミスとつめのchild_dataなし= 2で以下のようなXML構造を持っています?

+0

がやった:あなたは、それは次のようになります。テーブルの列を更新する場合

DATA/CHILDRENS[CHILDRENS_DEF/@lname="smith"]/CHILDRENS_DATA/CHILD_DATA[@no="2"]/CHILD_COL_VALUE[@name="Fname"]/text() 

をあなたはこれで運がありますか? –

答えて

1

あなたはXPath式が多少のようになりますupdateXML
を使用することができます。

UPDATE <<your_table>> 
SET <<xml_col_name>> = updateXML(<<xml_col_name>>, 
           'DATA/CHILDRENS[CHILDRENS_DEF/@lname="smith"]/CHILDRENS_DATA/CHILD_DATA[@no="2"]/CHILD_COL_VALUE[@name="Fname"]/text()', 
           'AB'); 
+0

エラーメッセージが表示されました: ORA-00600:内部エラーコード、引数:[qmcxdUnpicLoc9]、[20]、[28]、[]、[]、[]、[]、[]、[ ]、[]、[]、[] – dbuser

+0

sql * plusやツール(sqldeveloper、plsqldeveloperなど)から試しましたか? –

+0

私はpl/sql開発者v。7.1.5.1398 – dbuser