【发布时间】:2014-06-27 15:07:02
【问题描述】:
我正在使用数据库 Oracle 11g,它有一些 xml 字段,例如:
<bookstore id="other">
<fractionOfbooks>1.0</fractionOfbooks>
</bookstore>
<bookstore id="main">
<fractionOfbooks>0.0</fractionOfbooks>
</bookstore>
<bookstore id="small">
<fractionOfbooks>0.0</fractionOfbooks>
</bookstore>
所以我需要将分数从 id="other" 更改为 0.0,并将 id="main" 更改为 1.0。
我正在做两个查询,所以首先我做:
update
db.mytable
set
xml = updatexml(
xml,
'/*:bookstore/[@name="other"]/*:fractionOfbooks',
0.0
)
奇怪的是,如果我选择记录,生成的 xml 缺少最后一个标签,所以它变成:
<bookstore id="other">0</bookstore>
<bookstore id="main">
<fractionOfbooks>0.0</fractionOfbooks>
</bookstore>
<bookstore id="small">
<fractionOfbooks>0.0</fractionOfbooks>
</bookstore>
我认为设置包含标签的值不是一个很好的解决方案,所以谁能帮我找出问题所在?
谢谢
【问题讨论】: