oracle XMLType字段使用方法

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

刚才研究了一下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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 高级数据类型(一)—— 数组

数组(Arrays) 是在内存中连续存储的一组同种数据类型的元素&#xff08;变量&#xff09;&#xff0c;每一数组有一个唯一名称&#xff0c;通过在名称后面加索引&#xff08;index&#xff09;的方式可以引用它的每一个元素。 也就是说&#xff0c;例如我们有5个整型数值需要存…

DataUml Design 介绍8-DataUML 1.2版本正式发布

为什么80%的码农都做不了架构师&#xff1f;>>> DataUML 1.2版本在软件架构上有了很大的变化&#xff0c;目前DataUML支持Access、SQLite、MY SQL 、ORACLE、MS SERVER2000、MS SERVER2005、MS SERVER2008数据库。 下载 主要更新内容如下&#xff1a;  1、支持S…

C++ 高级数据类型(二)—— 字符序列

前面基础知识部分讲C变量类型的时候&#xff0c;我们已经提到过C的标准函数库提供了一个string类来支持对字符串的操作。然而&#xff0c;字符串实际就是一串连续的字符序列&#xff0c;所以我们也可以用简单的字符数组来表示它。 例如&#xff0c;下面这个数组: char jenny …

转: seajs手册与文档之 -- 模块标识

目录 模块标识 相对标识顶级标识普通路径文件后缀的提示模块标识 模块标识是一个字符串&#xff0c;用来标识模块。在 require、 require.async 等加载函数中&#xff0c;第一个参数都是模块标识。define 函数的 dependencies 参数也是由模块标识组成。 SeaJS 中的模块标识是 C…

C++ 高级数据类型(三)—— 指针

我们已经明白变量其实是可以由标识来存取的内存单元。但这些变量实际上是存储在内存中具体的位置上的。对我们的程序来说&#xff0c;计算机内存只是一串连续的单字节单元(1byte cell)&#xff0c;即最小数据单位&#xff0c;每一个单元有一个唯一地址。 计算机内存就好像城市中…

C++ 高级数据类型(四)—— 动态内存分配

到目前为止&#xff0c;我们的程序中我们只用了声明变量、数组和其他对象&#xff08;objects&#xff09;所必需的内存空间&#xff0c;这些内存空间的大小都在程序执行之前就已经确定了。但如果我们需要内存大小为一个变量&#xff0c;其数值只有在程序运行时 (runtime)才能确…

Linux下查看文件和文件夹大小的df和du命令(链接)

http://www.yayu.org/look.php?id162转载于:https://www.cnblogs.com/tyhmj/p/3682480.html

C++ 高级数据类型(五)—— 数据结构

一个数据结构是组合到同一定义下的一组不同类型的数据&#xff0c;各个数据类型的长度可能不同。它的形式是&#xff1a; struct model_name {type1 element1;type2 element2;type3 element3;..} object_name;这里model_name 是一个这个结构类型的模块名称。object_name 为可选…

ubuntu 手动安装mysql

申请了一台云主机&#xff0c;需要手动安装所有环境&#xff0c;今天将mysql安装过程记下。 安装mysqla. 下载不了gcc, 需要先运行apt-get updateb. cmake报错&#xff0c;每次要先删除cmakeCache.txt&#xff0c;再重新跑cmakec. apt-get install ncurses找不到对应包&#xf…

C++ 高级数据类型(六)—— 自定义数据类型

前面我们已经看到过一种用户&#xff08;程序员&#xff09;定义的数据类型&#xff1a;结构。除此之外&#xff0c;还有一些其它类型的用户自定义数据类型&#xff1a; 定义自己的数据类型 (typedef) C 允许我们在现有数据类型的基础上定义我们自己的数据类型。我们将用关键字…

JSF 2.0/2.1 生命周期简介

2019独角兽企业重金招聘Python工程师标准>>> 标准的生命周期划分为六个阶段&#xff1a;恢复视图、应用请求值、验证、更新模型值、调用应用程序、渲染响应&#xff0c;每一个阶段都可以直接跳转到最后一个阶段或者结束。 转载于:https://my.oschina.net/koulikoro/…

C++ 面向对象(一)—— 类(Classes)

类(class)是一种将数据和函数组织在同一个结构里的逻辑方法。定义类的关键字为class &#xff0c;其功能与C语言中的struct类似&#xff0c;不同之处是class可以包含函数&#xff0c;而不像struct只能包含数据元素。 类定义的形式是&#xff1a; [cpp] view plaincopy class cl…

Oracle C#处理时间类型的Insert

首先如果直接parm.ValueDateTime.Now;insert into table (TheTime)Value(parm);执行sql就会报错 --------------ORA-01861: 文字与格式字符串不匹配ADO.NET并没做到oracle转换。。所以oracle不兼容。解决方案&#xff1a;//先把时间转换为stirngparm.ValueDateTime.Now.ToStrin…

C++ 面向对象(二)—— 操作符重载

C 实现了在类(class)之间使用语言标准操作符&#xff0c;而不只是在基本数据类型之间使用。例如&#xff1a; int a, b, c; a b c;是有效操作&#xff0c;因为加号两边的变量都是基本数据类型。然而&#xff0c;我们是否可以进行下面的操作就不是那么显而易见了&#xff08;…

Seen.js – 使用 SVG 或者 Canvas 渲染 3D 场景

Seen.js 渲染3D场景为 SVG 或者 HTML5 画布。Seen.js 包含对于 SVG 和 HTML5 Canvas 元素的图形功能的最简单的抽象。所有这个库的其它组件都是不用关心将要渲染的上下文的类型。 您可能感兴趣的相关文章你见过吗&#xff1f;9款超炫的复选框&#xff08;Checkbox&#xff09;效…

C++ 面向对象(三)—— 类之间的关系

友元函数(Friend functions) 在前面的章节中我们已经看到了对class的不同成员存在3个层次的内部保护&#xff1a;public&#xff0c; protected 和 private。在成员为 protected 和 private的情况下&#xff0c;它们不能够被从所在的class以外的部分引用。然而&#xff0c;这个…

Oracle 之 用户与权限

1.创建用户create user zhu identified by "123456";#刚创建的新用户权限为空&#xff0c;所以不能连接数据库 grant create session to zhu;#赋予create session才可以连接到数据库2.修改用户的密码SQL> conn zhu/123456; Connected. SQL> show user; USER i…

C++ 面向对象(四)—— 多态 (Polymorphism)

基类的指针(Pointers to base class) 继承的好处之一是一个指向子类(derived class)的指针与一个指向基类(base class)的指针是type-compatible的。 本节就是重点介绍如何利用C的这一重要特性。例如&#xff0c;我们将结合C的这个功能&#xff0c;重写前面小节中关于长方形rect…

五年后存储会是什么样子

原文&#xff1a;http://chucksblog.emc.com/chucks_blog/2013/06/what-storage-might-look-like-in-five-years.html注明&#xff1a;本文内容基于 VMware VSAN beta 版本撰写&#xff0c;请访问http://www.vmware.com/products/virtual-san/获得有关正式版本的更新信息。有时…

C++ 标准函数库 —— 文件的输入输出 (Input/Output with files)

C 通过以下几个类支持文件的输入输出&#xff1a; ofstream: 写操作&#xff08;输出&#xff09;的文件类 (由ostream引申而来)ifstream: 读操作&#xff08;输入&#xff09;的文件类(由istream引申而来)fstream: 可同时读写操作的文件类 (由iostream引申而来) 打开文件(Ope…