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

 首先我们先建测试表

  

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

  

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

  

 <quanxian>
<Textbox6 id="Textbox6" dataType="java.lang.String" perDataProId=""></Textbox6>
<Textbox9 id="Textbox9" dataType="java.lang.String" perDataProId="">1205</Textbox9>
<Textbox10 id="Textbox10" dataType="java.lang.String" perDataProId="">2019/07/18</Textbox10>
<TextArea14 id="TextArea14" dataType="java.lang.String" perDataProId=""></TextArea14>
<SerialNumber id="SerialNumber" dataType="java.lang.String">zx-2019074674</SerialNumber>
<Textbox21 id="Textbox21" dataType="java.lang.String" perDataProId=""></Textbox21>
<HiddenTextField0 id="HiddenTextField0" dataType="java.lang.String" perDataProId=""/>
<Checkbox0 id="Checkbox0" dataType="java.lang.String">0</Checkbox0>
<Checkbox1 id="Checkbox1" dataType="java.lang.String"/>
<Checkbox2 id="Checkbox2" dataType="java.lang.String"/>
<Checkbox3 id="Checkbox3" dataType="java.lang.String"/>
<Checkbox4 id="Checkbox4" dataType="java.lang.String"/>
<Checkbox5 id="Checkbox5" dataType="java.lang.String"/>
<Textbox11 id="Textbox11" dataType="java.lang.String" perDataProId=""></Textbox11>
<HiddenTextField1 id="HiddenTextField1" dataType="java.lang.String" perDataProId=""/>
<HiddenTextField2 id="HiddenTextField2" dataType="java.lang.String" perDataProId="">1205</HiddenTextField2>
<RadioButton18 id="RadioButton18" dataType="java.lang.String"/>
<TextArea19 id="TextArea19" dataType="java.lang.String" perDataProId=""/>
<Textbox0 id="Textbox0" dataType="java.lang.String" perDataProId="">19060071</Textbox0>
<Textbox1 id="Textbox1" dataType="java.lang.String" perDataProId=""></Textbox1>
<Checkbox7 id="Checkbox7" dataType="java.lang.String"/>
<Checkbox9 id="Checkbox9" dataType="java.lang.String"/>
<Checkbox8 id="Checkbox8" dataType="java.lang.String"/>
<TextArea0 id="TextArea0" dataType="java.lang.String" perDataProId=""/>
<Checkbox6 id="Checkbox6" dataType="java.lang.String"/>
<HiddenTextField3 id="HiddenTextField3" dataType="java.lang.String" perDataProId=""/>
<HiddenTextField4 id="HiddenTextField4" dataType="java.lang.String" perDataProId="">R</HiddenTextField4>
<Checkbox10 id="Checkbox10" dataType="java.lang.String"/>
<Checkbox11 id="Checkbox11" dataType="java.lang.String"/>
<Dropdown13 id="Dropdown13" dataType="java.lang.String">SX003</Dropdown13>
<TextArea15 id="TextArea15" dataType="java.lang.String" perDataProId=""></TextArea15>
<TextArea25 id="TextArea25" dataType="java.lang.String" perDataProId=""></TextArea25>
<Checkbox24 id="Checkbox24" dataType="java.lang.String"/>
<TextArea26 id="TextArea26" dataType="java.lang.String" perDataProId=""/>
<hd5 id="hd5" dataType="java.lang.String" perDataProId=""/>
<hd6 id="hd6" dataType="java.lang.String" perDataProId=""/>
<ps0 id="ps0" dataType="java.lang.String" perDataProId=""></ps0>
<ps1 id="ps1" dataType="java.lang.String" perDataProId="">SX003</ps1>
<hd0 id="hd0" dataType="java.lang.String" perDataProId="">false</hd0>
<SubjectInfo id="SubjectInfo" dataType="java.lang.String" perDataProId=""></SubjectInfo>
<GroupArrayInfo id="GroupArrayInfo" dataType="java.lang.String" perDataProId=""></GroupArrayInfo>
<Checkbox12 id="Checkbox12" dataType="java.lang.String"/>
<Checkbox13 id="Checkbox13" dataType="java.lang.String"/>
</quanxian>
接下来是oracle增删改查 -- 获取不带节点的值,例如:222
select extractvalue(xmltype(t.fieldvalues),'/quanxian/TextArea15') as result from Forminstance_2019_07_20_test1 t where t.oid = '17297af0e588100488896efdb640ce5e';
--修改
UPDATE Forminstance t SET t.fieldvalues =
updatexml(xmltype(t.fieldvalues),'/quanxian/Textbox6','<Textbox6>魏伟111</Textbox6>').getClobVal()
WHERE t.oid = '17297af0e588100488896efdb640ce5e'
--删除
update Forminstance_2019_07_20 t set t.fieldvalues=deletexml(xmltype(t.fieldvalues),'/quanxian/TextArea15').getClobVal()
WHERE t.oid = '17297af0e588100488896efdb640ce5e'; -- 添加xml节点,insertchildxml添加xml节点,参数3默认指定插在该节点后,若该节点不存在,则追加到子节点集合的末尾
-- 添加xml节点,insertchildxmlbefore,和insertchildxmlafter添加xml节点,
---参数3指定插在该节点前或者后,若该节点不存在,则追加到子节点集合的末尾
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';
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. VUE实现Studio管理后台(十):OptionBox,一个综合属性输入界面,可以级联重置

    为了便于阅读代码,已经把测试数据分离出来,放在了mock目录下: 阅读代码的话,稍微留意一下就好.本次介绍RXEditor界面最重要的部分,属性输入组件,该组件可以显示是否有数据被修改,还可以批量重置 ...

  2. 在centos7使用docker下搭建elasticsearch集群

    一 .docker的安装 https://www.cnblogs.com/ghostdot/p/12410242.html 二.创建相关映射文件 cd /home/ mkdir node cd nod ...

  3. DBProxy快速入门

    1. DBProxy安装 1.1 安装依赖项 CentOS yum install -y Percona-Server-devel-55.x86_64 Percona-Server-client-55 ...

  4. 再说scss

    1. CSS预处理器 定义了一种新的专门的编程语言,编译后成正常的CSS文件.为CSS增加一些编程的特性,无需考虑浏览器的兼容问题,让CSS更加简洁,适应性更强,可读性更佳,更易于代码的维护等诸多好处 ...

  5. 一口气说出 6种,@Transactional注解的失效场景

    整理了一些Java方面的架构.面试资料(微服务.集群.分布式.中间件等),有需要的小伙伴可以关注公众号[程序员内点事],无套路自行领取 一口气说出 9种 分布式ID生成方式,面试官有点懵了 面试总被问 ...

  6. win10安装ubuntu子系统和图形界面

    子系统可以很方便的调用windows的文件(在/mnt里就有各个盘),也可以在windows里用VScode编辑linux的文件.还是很方便的.也可以切出去用QQ微信. 安装子系统参考教程:https ...

  7. Python生态_turtle库

    Python生态_turtle库: 绘制状态函数: pendown():别名pd(),落下画笔,之后,移动画笔将绘制形状 penup():抬起画笔 pensize():画笔粗细大小 颜色控制函数: p ...

  8. sql语句的基本用法总结

    一.sql语法 select */列名1,列名2... from 表名[连接查询 内连接/左连接 on条件] 必选的 where 条件 子查询/in/exists/between ... and .. ...

  9. Bugku流量分析题目总结

    flag被盗 题目链接:https://ctf.bugku.com/files/e0b57d15b3f8e6190e72987177da1ffd/key.pcapng 解题思路: 这个题目是比较基本的 ...

  10. 论文速递 | 实例分割算法BlendMask,实时又state-of-the-art

    BlendMask通过更合理的blender模块融合top-level和low-level的语义信息来提取更准确的实例分割特征,该模型效果达到state-of-the-art,但结构十分精简,推理速度 ...