对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 ...
随机推荐
- 有史以来最全的CMD命令
说在前面的话: 本篇是博主通过网上查找整理而成的,且都是亲测可以的一些cmd命令,可以说是很齐全了,当然,如果有不可以运行的代码,欢迎大家留言指出,我会不断完善的,谢谢. CMD作用: 掌握一些基本的 ...
- JavaScript的数组系列
数组 今天逆战班的学习主题关于Javascript的数组,主要有数组的概念.创建.分类.方法.遍历.经典算法...... 一.数组是什么呢?怎么写数组呢?数组有多少种呢? 数组的概念 对象是属性的无序 ...
- web前端问题整理
1.常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1)浏览器:IE,Chrome,FireFox,Safari,Opera (Q2)内核:Trident,Gecko,Prest ...
- 学习gensim
首先要将字符串分割成词语列表.比如”hurry up”要分割成[“hurry”,”up”]. 对于中文来讲,分词就是一个很关键的问题,不过可以去找一些分词库来实现.我一般用的是jieba. 而对于英文 ...
- model进阶
本节目录 一 QuerySet 二 中介模型 三 查询优化 四 extra 五 整体插入 一 QuerySet 可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMI ...
- c js 字符串反转
1.例如:输入 i am a student 输出 student a am i #include <stdio.h> #include <string.h> v ...
- liunx 安装 zookeeper(转)
转自:https://www.cnblogs.com/expiator/p/9853378.html linux安装zookeeper及使用 一.安装条件 想要安装zookeeper,必须先在linu ...
- JS排序算法--冒泡排序和选择排序
在我们JS语法当中,数据类型中的复杂数据类型,有一项我们常用的数组数据类型,其中存储的数据有时是乱序的,需要排序,我们有多种方法,最简单的肯定是 :变量.sort(fonction(a,b){a> ...
- postman使用简介
postman进行Http类型的接口测试的功能测试(手工测试): 1.postman下载,解压,打开Chrome浏览器-->设置-->扩展程序-->勾选开发者模式-->加载已解 ...
- vscode如何配置debug,python正则表达式如何匹配括号,关于python如何导入自定义模块
关于vscode如何配置debug的问题: 1.下载安装好python,并且配置好 环境变量 2.https://www.cnblogs.com/asce/p/11600904.html 3.严格按照 ...