这段时间,我使用系统表里面有clob字段里面存放的xml信息,我们如何对xml进行增删改查操作呢,自己参考了很多也学到很多,给大家分享一下

 首先我们先建测试表

  

  1. CREATE TABLE EFGP_231.FORMINSTANCE_2019_07_20_test1
  2. ( OID CHAR(32) NOT NULL ENABLE,
  3. FIELDVALUES CLOB NOT NULL ENABLE
  4. )

  

  创建完以后,clob字段放入我们xml数据,具体是什么呢,

  

  1. <quanxian>
  2. <Textbox6 id="Textbox6" dataType="java.lang.String" perDataProId=""></Textbox6>
  3. <Textbox9 id="Textbox9" dataType="java.lang.String" perDataProId="">1205</Textbox9>
  4. <Textbox10 id="Textbox10" dataType="java.lang.String" perDataProId="">2019/07/18</Textbox10>
  5. <TextArea14 id="TextArea14" dataType="java.lang.String" perDataProId=""></TextArea14>
  6. <SerialNumber id="SerialNumber" dataType="java.lang.String">zx-2019074674</SerialNumber>
  7. <Textbox21 id="Textbox21" dataType="java.lang.String" perDataProId=""></Textbox21>
  8. <HiddenTextField0 id="HiddenTextField0" dataType="java.lang.String" perDataProId=""/>
  9. <Checkbox0 id="Checkbox0" dataType="java.lang.String">0</Checkbox0>
  10. <Checkbox1 id="Checkbox1" dataType="java.lang.String"/>
  11. <Checkbox2 id="Checkbox2" dataType="java.lang.String"/>
  12. <Checkbox3 id="Checkbox3" dataType="java.lang.String"/>
  13. <Checkbox4 id="Checkbox4" dataType="java.lang.String"/>
  14. <Checkbox5 id="Checkbox5" dataType="java.lang.String"/>
  15. <Textbox11 id="Textbox11" dataType="java.lang.String" perDataProId=""></Textbox11>
  16. <HiddenTextField1 id="HiddenTextField1" dataType="java.lang.String" perDataProId=""/>
  17. <HiddenTextField2 id="HiddenTextField2" dataType="java.lang.String" perDataProId="">1205</HiddenTextField2>
  18. <RadioButton18 id="RadioButton18" dataType="java.lang.String"/>
  19. <TextArea19 id="TextArea19" dataType="java.lang.String" perDataProId=""/>
  20. <Textbox0 id="Textbox0" dataType="java.lang.String" perDataProId="">19060071</Textbox0>
  21. <Textbox1 id="Textbox1" dataType="java.lang.String" perDataProId=""></Textbox1>
  22. <Checkbox7 id="Checkbox7" dataType="java.lang.String"/>
  23. <Checkbox9 id="Checkbox9" dataType="java.lang.String"/>
  24. <Checkbox8 id="Checkbox8" dataType="java.lang.String"/>
  25. <TextArea0 id="TextArea0" dataType="java.lang.String" perDataProId=""/>
  26. <Checkbox6 id="Checkbox6" dataType="java.lang.String"/>
  27. <HiddenTextField3 id="HiddenTextField3" dataType="java.lang.String" perDataProId=""/>
  28. <HiddenTextField4 id="HiddenTextField4" dataType="java.lang.String" perDataProId="">R</HiddenTextField4>
  29. <Checkbox10 id="Checkbox10" dataType="java.lang.String"/>
  30. <Checkbox11 id="Checkbox11" dataType="java.lang.String"/>
  31. <Dropdown13 id="Dropdown13" dataType="java.lang.String">SX003</Dropdown13>
  32. <TextArea15 id="TextArea15" dataType="java.lang.String" perDataProId=""></TextArea15>
  33. <TextArea25 id="TextArea25" dataType="java.lang.String" perDataProId=""></TextArea25>
  34. <Checkbox24 id="Checkbox24" dataType="java.lang.String"/>
  35. <TextArea26 id="TextArea26" dataType="java.lang.String" perDataProId=""/>
  36. <hd5 id="hd5" dataType="java.lang.String" perDataProId=""/>
  37. <hd6 id="hd6" dataType="java.lang.String" perDataProId=""/>
  38. <ps0 id="ps0" dataType="java.lang.String" perDataProId=""></ps0>
  39. <ps1 id="ps1" dataType="java.lang.String" perDataProId="">SX003</ps1>
  40. <hd0 id="hd0" dataType="java.lang.String" perDataProId="">false</hd0>
  41. <SubjectInfo id="SubjectInfo" dataType="java.lang.String" perDataProId=""></SubjectInfo>
  42. <GroupArrayInfo id="GroupArrayInfo" dataType="java.lang.String" perDataProId=""></GroupArrayInfo>
  43. <Checkbox12 id="Checkbox12" dataType="java.lang.String"/>
  44. <Checkbox13 id="Checkbox13" dataType="java.lang.String"/>
  45. </quanxian>
  46. 接下来是oracle增删改查
  47.  
  48. -- 获取不带节点的值,例如:222
  49. select extractvalue(xmltype(t.fieldvalues),'/quanxian/TextArea15') as result from Forminstance_2019_07_20_test1 t where t.oid = '17297af0e588100488896efdb640ce5e';
  50. --修改
  51. UPDATE Forminstance t SET t.fieldvalues =
  52. updatexml(xmltype(t.fieldvalues),'/quanxian/Textbox6','<Textbox6>魏伟111</Textbox6>').getClobVal()
  53. WHERE t.oid = '17297af0e588100488896efdb640ce5e'
  54. --删除
  55. update Forminstance_2019_07_20 t set t.fieldvalues=deletexml(xmltype(t.fieldvalues),'/quanxian/TextArea15').getClobVal()
  56. WHERE t.oid = '17297af0e588100488896efdb640ce5e';
  57.  
  58. -- 添加xml节点,insertchildxml添加xml节点,参数3默认指定插在该节点后,若该节点不存在,则追加到子节点集合的末尾
  59. -- 添加xml节点,insertchildxmlbefore,和insertchildxmlafter添加xml节点,
  60. ---参数3指定插在该节点前或者后,若该节点不存在,则追加到子节点集合的末尾
  61. update Forminstance_2019_07_20_test1 t set t.fieldvalues=insertchildxml(xmltype(t.fieldvalues),'/quanxian','tel',xmltype('<tel>222</tel>')).getClobVal() where t.oid='17297af0e588100488896efdb640ce5e';
  62. update Forminstance_2019_07_20_test1 t set t.fieldvalues=insertchildxmlbefore(xmltype(t.fieldvalues),'/quanxian','Textbox6',xmltype('<TextArea15>111</TextArea15>')).getClobVal() WHERE t.oid = '17297af0e588100488896efdb640ce5e';

对oracle里面clob字段里面xml的增删改查学习的更多相关文章

  1. VB&XML的增删改查

    简介:XML的增删改查 开发过程中有许多后台操作XML的过程,每次需要操作时都是找很多代码来参考或者百度一下.今天决定补充下XML操作的知识,把XML操作的增删改查都写了一遍,供以后开发参考 查询: ...

  2. Mybatis之基于XML的增删改查

    这里先吐槽下,写的半天的东西,IE浏览器弹出调试窗口导致写的东西全部没保存,搞得我还要重新用谷歌写,思路全没了,fuck. 前面学习了下spring的DAO层,说起DAO层,那ORM肯定是少不了的,O ...

  3. Mybatis_2.基于XML的增删改查

    1.实体类User.java public class User { private int id; private String name; private int age; //getter.se ...

  4. java实现xml文件增删改查

    java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...

  5. java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

    一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...

  6. 使用idea对XML的增删改查

    XML:是一种可扩展标记性的语言,与java语言无关,它可以自定义标签. 1.首先需要到导入Dom4j架包,与自己所时候的ide关联 2.编写自己的xml文件,入上图所示(里面的所有元素及元素中的属性 ...

  7. [转载]Oracle之xml的增删改查操作

    tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数组取值的方式获取,但起始值从1开始 一.查询(Q ...

  8. Oracle之xml的增删改查操作

    工作之余,总结一下xml操作的一些方法和心得! tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数 ...

  9. Oracle+mybatis实现对数据的简单增删改查

    第一步:--创建一个表空间:名字叫 mybatis,建在D盘下的date文件夹下: 第二步:创建用户,名字叫  lisi  ,密码为  :123456 第三步:给用户授权: 第四步:我们在    li ...

随机推荐

  1. JS动画之缓动函数分析及动画库

    上一篇讲了JS动画定时器相关知识,这一篇介绍下缓动函数及流行的动画库. 熟悉的图 实际使用 jquery animate()+jquery.easing插件的使用: $(selector).anima ...

  2. DOM是什么(初级版)

    js新手村出村之路--基础知识 在这里默认你已经粗粗的自学过了一遍js知识.(也许是在昏昏欲睡的课堂上听了两分钟,也许是跟着b站上的视频打了一遍.who cares) 在下面的内容中我将整理一些在平常 ...

  3. 编译putty 源码去掉 Are you sure you want to close this session? 提示

    0, 为什么要编译 putty ?在关闭窗口的时候,会弹出一个 Are you sure you want to close this session?要把这个去掉.当然也可以用 OD 之类的来修改. ...

  4. AspNetCore源码解析_1_CORS中间件

    概述 什么是跨域 在前后端分离开发方式中,跨域是我们经常会遇到的问题.所谓的跨域,就是处于安全考虑,A域名向B域名发出Ajax请求,浏览器会拒绝,抛出类似下图的错误. JSONP JSONP不是标准跨 ...

  5. 个人项目作业(wc.exe)

    1.GitHub项目地址 https://github.com/QiuBin666/WC 项目介绍: 题目描述 Word Count1. 实现一个简单而完整的软件工具(源程序特征统计程序).2. 进行 ...

  6. Ubuntu16.04 desktop 设置共享文件夹 -- 图形界面配置

    1. 安装 安装samba 直接采用 Ubuntu16.04 desktop 里面的安装向导来完成: 选中需要共享的文件夹 -> 右键 “local Network Share” -> 安 ...

  7. 网页中三角型的CSS实现

    我们在使用CSS框架的时候,经常会用到下拉框组件,一般该组件里面有个下三角.很多网上用到三角形,如图所示,这个三角形是如何实现的呢? 1.使用CSS可以实现,先来复习一CSS盒子模型相关知识.给出如下 ...

  8. [BUG]微信浏览器 iOS input 失焦页面不回弹

    描述 ios13. ios中,input唤醒软键盘后,body整体会向上滚动,如果input框输入完成确定后,如果页面在最底部则不回弹,导致fixed布局实际效果上移,fixed布局内按钮点不到. 如 ...

  9. node.js中http.respone.end方法概述

    方法说明: 结束响应,告诉客户端所有消息已经发送.当所有要返回的内容发送完毕时,该函数必须被调用一次. 如果不调用该函数,客户端将永远处于等待状态. 语法: response.end([data], ...

  10. 0919-The Standard of Code Review

    The primary purpose of code review is to make sure that the overall code health of Google’s code bas ...