2019独角兽企业重金招聘Python工程师标准>>>

刚才研究了一下XMLType字段使用方法 ,现在给大家介绍一下。  主要是新增、查询、修改XMLType字段

表结构:

 

 

建表sql:

 

-- Create table

create table T_BOOK

(

  ID          VARCHAR2(32) not null,

  SYS_ID      VARCHAR2(32),

  TYPE        VARCHAR2(200),

  LIBRARY     VARCHAR2(32),

  TITLE       VARCHAR2(200),

  CREATE_USER VARCHAR2(64),

  SUBJECT     VARCHAR2(200),

  DESCRIPTION VARCHAR2(200),

  PUBLISHER   VARCHAR2(200),

  CONTRIBUTOR VARCHAR2(200),

  CREATE_DATE DATE,

  FORMAT      VARCHAR2(200),

  INENTIFIER  VARCHAR2(200),

  SOURCE      VARCHAR2(200),

  LANGUAGE    VARCHAR2(200),

  OTHER_DESC  XMLTYPE

)

tablespace DCP

  pctfree 10

  initrans 1

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );

-- Add comments to the table 

comment on table T_BOOK

  is '数字资源结构表';

-- Add comments to the columns 

comment on column T_BOOK.LIBRARY

  is '分区键';

-- Create/Recreate primary, unique and foreign key constraints 

alter table T_BOOK

  add constraint PK_T_BOOK primary key (ID)

  using index 

  tablespace DCP

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );

 

 

新增记录:

 

insert into t_book 

(id,other_desc) 

values (1 , sys.xmlType.createXML('<name><a id="1" value="some values">abc</a></name>') );

 

insert into t_book 

(id,other_desc) 

values (2 , sys.xmlType.createXML('<name><a id="1" value="some values">abc</a><b id="2" value="some2 values">abc2</b></name> ') );

 

 

查询记录:

查询一个字段中不存在的元素时,返回null值

 

得到id=1的value变量的值

select i.other_desc.extract('//name/a[@id=1]/@value ').getStringVal() as ennames, id from t_book i

 

rowid ennames id

1 some values 1

2 some values 2

 

得到a节点的值

select id,i.other_desc.getclobval(), i.other_desc.extract('//name/a/text()').getStringVal() as truename from t_book i

 添加节点

update ris_u_res.t_data_402 t
set t.other_description=insertchildxml(other_description,
'//xmlType','COPYRIGHT',xmltype('<COPYRIGHT>1</COPYRIGHT>'))
    where t.id='721577' 

 

得到b节点id属性的值

Select i.other_desc.extract('/name/b/@id').getStringVal()    As Name FROM t_book i where i.id='1'

 

修改记录:

修改一个字段中不存在的元素时,不会对数据有修改,但是1rows updated,所以需要提交事务。

 

更新id为1的记录的XMLType字段的a元素的id为1的value的值为some new value

update t_book set other_desc=updateXML(other_desc,'//name/a[@id=1]/@value ','some new value') where id=1

更新节点里面的数据

 

update T_DATA_892 t
   set t.other_description = updateXML(t.other_description,
                                       '//xmlType/SERIALNUM_905S',
                                       '<SERIALNUM_905S>12072</SERIALNUM_905S>')
                                     where t.id='1591083'

转载于:https://my.oschina.net/kt431128/blog/224713

oracle XMLType字段使用方法相关推荐

  1. oracle改类型吗,详解Oracle修改字段类型方法总结

    最近学习了Oracle修改字段类型方法,留做记录. 有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter tab ...

  2. oracle修改字段详解,详解Oracle修改字段类型方法总结

    最近学习了Oracle修改字段类型方法,留做记录. 有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行: sql;" ...

  3. Oracle修改字段类型方法

    为什么80%的码农都做不了架构师?>>>    有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行: al ...

  4. oracle 修改字段类型方法

    因为业务需要,修要修改某个字段数据类型有number(5),变为number(5,2)型 要是没有数据的话直接用以下语句即可 alter   table tb_test modify permile ...

  5. Oracle修改字段类型方法总结

    有一个表名为tb,字段段名为name,数据类型nchar(20). 1.假设字段数据为空,则不管改为什么字段类型,可以直接执行: alter table tb modify (name nvarcha ...

  6. oracle调整字段精度的四种方法

    oracle调整字段精度的四种方法: 01_执行用户_ddl/dml_表名_注释(建表/授权/同义词) 调整方式一:(精度只能调大不能调小) alter table table_name_a MODI ...

  7. db2主键自增和oracle,oracle_浅析常用数据库的自增字段创建方法汇总,DB2复制代码 代码如下:CREATEnbsp - phpStudy...

    浅析常用数据库的自增字段创建方法汇总 DB2 CREATE   TABLE  T1 ( id  INTEGER   NOT   NULL  GENERATED ALWAYS  AS   IDENTIT ...

  8. oracle Blob保存方式,关于文件保存到Oracle中BLOB字段的方法及例子

    关于文件保存到Oracle中BLOB字段的方法及例子 ------------------------------------------- public class FileOpClass { pu ...

  9. django oracle数据库配置,django连接oracle时setting 配置方法

    下一步是将新创建的应用程序与项目相关联.为此,您需要编辑 myproj 文件夹中的 settings.py 文件,将字符串"myproj.myapp"追加到 INSTALLED_A ...

最新文章

  1. matlab 向量模量,有限元分析简单实例之平面矩形薄板(matlab)
  2. Java问题解决:Java compiler level does not match the version of the installed Java project facet....
  3. 2021春季每日一题 【week2 未完结】
  4. [2018.12.26]BZOJ1022 [SHOI2008]小约翰的游戏John
  5. [转]CDN(内容分发网络)技术原理
  6. 如何解包/编辑/打包boot.img文件
  7. Mysql大数据中表分区的应用
  8. 操作系统之进程管理:18、预防死锁
  9. linux内核 panic,linux 内核 panic
  10. 7-30 字符串的冒泡排序 (20 分) or 7-27 冒泡法排序 (20 分)
  11. 中国特种电器灯泡行业市场供需与战略研究报告
  12. 雅虎的用户注册页面抽风了
  13. pandas的两种数据类型:Series和DataFrame
  14. 预测模型——灰色模型
  15. 计算机平面设计要学语数英吗,《计算机平面设计与制作》课程标准规范.doc
  16. 水晶易表 Xcelsius 2008 安装指南学习资源
  17. 微信小程序引入组件以及catchtouchmove实现拖动效果
  18. Python3不存在raw_input( )了
  19. android studio虚拟机无法启动 The system requirements are not satisfied、vmx enabled no、vmx supported no
  20. mysql 派生表 索引_MySQL 索引初探

热门文章

  1. mysql5.7初始密码查看及密码重置
  2. libevent项目分析(一) -- 准备阶段
  3. 《STL源码剖析常见面试问题》
  4. MySQL千万数据量深分页优化
  5. 连接sqlexpress
  6. OpenGL中的二维编程——从简单的矩形开始
  7. 【AC自动机】【数据结构】【树】【Aho-Corasick automation】AC自动机理解(入门)...
  8. 【链表】Add Two Numbers
  9. SPOJ SORTBIT Sorted bit squence (数位DP,入门)
  10. 4、Cocos2dx 3.0三,找一个小游戏开发Hello World 分析