PLSQL更新xmltype列节点

时间:2018-08-20 13:47:36

标签: xml plsql xmltype

我必须用一些值更新xml类型的列。我仅在另一个元素具有某些属性的情况下更新节点的元素。只有当VALOR73中的valor等于10:12:52时,才会更新quad02值VALOR12TIND。

<QUAD02 data="18.08.20" utilizador="30768">
<VALOR71 titulo="N." valor="2"/>
<VALOR72 titulo="Data" valor="18.08.20"/>
<VALOR73 titulo="Hora" valor="10:12:52"/>
<VALOR12TIND titulo="uuu" valor=""/>

<QUAD02 data="18.08.20" utilizador="30768">
<VALOR71 titulo="N." valor="2"/>
<VALOR72 titulo="Data" valor="18.08.20"/>
<VALOR73 titulo="Hora" valor="10:15:52"/>
<VALOR12TIND titulo="uuu" valor=""/>     

使用的查询是:

update doc_g po 
   set grelha = updatexml( grelha, 'GRELHA/quad/VALOR12T"/@valor' ,"ssss")
 where xmlexists('$p/GRELHA/quad02/VALOR73 [@valor="10:12:52"]' passing po.grelha as "p"

问题是查询更新了所有字段。你能为我指出一个方向吗?

0 个答案:

没有答案