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 ...;
就是这么简单!
你可能感兴趣的内容
0条评论

selfly

交流QQ群:32261424
Owner