XMLTYPE字段中,保存有如下内容:
<?xml version="1.0" encoding="UTF-8"?> <book> <id>100000383173331</id> <name>林惊风</name> <mark>原创</mark> <column> <id>1</id> <name>第一册:奇计连环</name> <chapter> <id>2</id> <name>第一章:骊山陵墓</name> </chapter> <chapter> <id>3</id> <name>第二章:一石三鸟</name> </chapter> <chapter> <id>4</id> <name>第三章:棋局突变</name> </chapter> </column> </book>
每个标签都同有任何的属性,如果我要更新第二个章节,把<name>的内容“第二章:一石三鸟”改为“第二章:一石四鸟”要怎么做呢?
当然可以把xml的内容查询出来进行解析,更新后再存回到数据库,但是这样麻烦又费事,能不能不查询出内容直接对它进行更新呢?当然有,参考下面的SQL语句:
update tableName t set t.xmltype = UPDATEXML(t.xmltype,'//book/column/chapter[id=2]/name','<name>第二章:一石四鸟</name>') where ...;
就是这么简单!