我必须用一些值更新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"
问题是查询更新了所有字段。你能为我指出一个方向吗?