对oracle里面clob字段里面xml的增删改查学习
这段时间,我使用系统表里面有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的增删改查学习的更多相关文章
- VB&XML的增删改查
简介:XML的增删改查 开发过程中有许多后台操作XML的过程,每次需要操作时都是找很多代码来参考或者百度一下.今天决定补充下XML操作的知识,把XML操作的增删改查都写了一遍,供以后开发参考 查询: ...
- Mybatis之基于XML的增删改查
这里先吐槽下,写的半天的东西,IE浏览器弹出调试窗口导致写的东西全部没保存,搞得我还要重新用谷歌写,思路全没了,fuck. 前面学习了下spring的DAO层,说起DAO层,那ORM肯定是少不了的,O ...
- Mybatis_2.基于XML的增删改查
1.实体类User.java public class User { private int id; private String name; private int age; //getter.se ...
- java实现xml文件增删改查
java一次删除xml多个节点: 方案1.你直接改动了nodeList,这一般在做循环时是不同意直接这么做的. 你能够尝试在遍历一个list时,在循环体同一时候删除list里的内容,你会得到一个异常. ...
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...
- 使用idea对XML的增删改查
XML:是一种可扩展标记性的语言,与java语言无关,它可以自定义标签. 1.首先需要到导入Dom4j架包,与自己所时候的ide关联 2.编写自己的xml文件,入上图所示(里面的所有元素及元素中的属性 ...
- [转载]Oracle之xml的增删改查操作
tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数组取值的方式获取,但起始值从1开始 一.查询(Q ...
- Oracle之xml的增删改查操作
工作之余,总结一下xml操作的一些方法和心得! tip: xmltype函数是将clob字段转成xmltype类型的函数,若字段本身为xmltype类型则不需要引用xmltype()函数 同名标签用数 ...
- Oracle+mybatis实现对数据的简单增删改查
第一步:--创建一个表空间:名字叫 mybatis,建在D盘下的date文件夹下: 第二步:创建用户,名字叫 lisi ,密码为 :123456 第三步:给用户授权: 第四步:我们在 li ...
随机推荐
- JS动画之缓动函数分析及动画库
上一篇讲了JS动画定时器相关知识,这一篇介绍下缓动函数及流行的动画库. 熟悉的图 实际使用 jquery animate()+jquery.easing插件的使用: $(selector).anima ...
- DOM是什么(初级版)
js新手村出村之路--基础知识 在这里默认你已经粗粗的自学过了一遍js知识.(也许是在昏昏欲睡的课堂上听了两分钟,也许是跟着b站上的视频打了一遍.who cares) 在下面的内容中我将整理一些在平常 ...
- 编译putty 源码去掉 Are you sure you want to close this session? 提示
0, 为什么要编译 putty ?在关闭窗口的时候,会弹出一个 Are you sure you want to close this session?要把这个去掉.当然也可以用 OD 之类的来修改. ...
- AspNetCore源码解析_1_CORS中间件
概述 什么是跨域 在前后端分离开发方式中,跨域是我们经常会遇到的问题.所谓的跨域,就是处于安全考虑,A域名向B域名发出Ajax请求,浏览器会拒绝,抛出类似下图的错误. JSONP JSONP不是标准跨 ...
- 个人项目作业(wc.exe)
1.GitHub项目地址 https://github.com/QiuBin666/WC 项目介绍: 题目描述 Word Count1. 实现一个简单而完整的软件工具(源程序特征统计程序).2. 进行 ...
- Ubuntu16.04 desktop 设置共享文件夹 -- 图形界面配置
1. 安装 安装samba 直接采用 Ubuntu16.04 desktop 里面的安装向导来完成: 选中需要共享的文件夹 -> 右键 “local Network Share” -> 安 ...
- 网页中三角型的CSS实现
我们在使用CSS框架的时候,经常会用到下拉框组件,一般该组件里面有个下三角.很多网上用到三角形,如图所示,这个三角形是如何实现的呢? 1.使用CSS可以实现,先来复习一CSS盒子模型相关知识.给出如下 ...
- [BUG]微信浏览器 iOS input 失焦页面不回弹
描述 ios13. ios中,input唤醒软键盘后,body整体会向上滚动,如果input框输入完成确定后,如果页面在最底部则不回弹,导致fixed布局实际效果上移,fixed布局内按钮点不到. 如 ...
- node.js中http.respone.end方法概述
方法说明: 结束响应,告诉客户端所有消息已经发送.当所有要返回的内容发送完毕时,该函数必须被调用一次. 如果不调用该函数,客户端将永远处于等待状态. 语法: response.end([data], ...
- 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 ...