对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 ...
随机推荐
- 【MySQL】:事务四大特性与隔离级别
目录 一.事务的概念 二.事务的四大特性 1.原子性 2.一致性 3.隔离性 4.持续性 三.事务语句 1.开启事务:start transaction 2.事务回滚:rollback 指定回滚点 3 ...
- DEX文件解析---2、Dex文件checksum(校验和)解析
一.checksum介绍 checksum(校验和)是DEX位于文件头部的一个信息,用来判断DEX文件是否损坏或者被篡改,它位于头部的0x08偏移地址处,占用4个字节,采用小端序存储. ...
- seo搜索优化教程10-黑帽SEO
为了使大家更方便的了解及学习网络营销推广.seo搜索优化,星辉科技强势推出seo搜索优化教程.此为seo教程第十课 学习黑帽SEO并不是教大家如何作弊,而是想让大家避免使用黑帽SEO手法,从而导致被搜 ...
- python如何用format进行进制转换与如何删除进制前缀
10进行十进制,十六进制,八进制,二进制的转换:(#:保留进制前缀)对于带着进制前缀的,如"0x"“0o”“0b”,可以直接在后面加上’x’‘o’'b’进行删除:其他的一些小技巧: ...
- 浅析js中的堆和栈
这里先说两个概念:1.堆(heap)2.栈(stack)堆 是堆内存的简称.栈 是栈内存的简称.说到堆栈,我们讲的就是内存的使用和分配了,没有寄存器的事,也没有硬盘的事.各种语言在处理堆栈的原理上都大 ...
- Go 武林外传 - 初出茅庐
没有旁白. 我叫小白, 白痴的白. 老头说我太笨了, 提前放我下山, 让我自生自灭. 对了, 忘了说了, 那老头是我师傅. 虽然我的内心深处是拒绝的, 但是我又打不过老头, 只好收拾铺盖滚犊子了. 算 ...
- 微信小程序修改request合法域名不生效及解决方法
在小程序微信公众平台修改后请求,依然在console中显示修改前的域名. 解决:在小程序开发者工具中点击“详情”后点击“域名信息”,就会自动刷新
- vscode如何配置debug,python正则表达式如何匹配括号,关于python如何导入自定义模块
关于vscode如何配置debug的问题: 1.下载安装好python,并且配置好 环境变量 2.https://www.cnblogs.com/asce/p/11600904.html 3.严格按照 ...
- macOS开发:调整NSImage尺寸大小
原文链接 extension NSImage { func resize(_ to: CGSize, isPixels: Bool = false) -> NSImage { var toSiz ...
- Mol Cell Proteomics. | A Targeted Mass Spectrometry Strategy for Developing Proteomic Biomarkers: A Case Study of Epithelial Ovarian Cancer(利用靶向质谱策略进行上皮性卵巢癌病例的蛋白质组生物标志物研究) (解读人:王聚)
文献名:利用靶向质谱策略进行上皮性卵巢癌病例的蛋白质组生物标志物研究 期刊名:Molecular & Cellular Proteomics 发表时间:(2019年7月) IF:5.41 单位 ...