Oracle xmltype解决方案
来源:互联网 发布:mac os x 10.6 iso 编辑:程序博客网 时间:2024/06/06 23:56
/* Formatted on 2016/5/23 13:58:17 (QP5 v5.256.13226.35538) */
DELETE FROM s_org
WHERE sog_id = 0;
--数据准备
INSERT INTO s_org (sog_id, sog_remark)
VALUES (0, xmltype ('<?xml version="1.0" encoding="UTF-8"?>
<root>
<cont>
<username>twb0</username>
<atime>2016-05-20 16:30:00</atime>
<detail>xxxxx0</detail>
</cont>
<cont>
<username>twb1</username>
<atime>2016-05-21 16:30:00</atime>
<detail>xxxxx1</detail>
</cont>
<cont>
<username>twb2</username>
<atime>2016-05-22 16:30:00</atime>
<detail>xxxxx2</detail>
</cont>
</root>'));
--查询出某个节点的所有数据
SELECT XMLQUERY ('/root/cont/username'
PASSING t.sog_remark RETURNING CONTENT)
FROM s_org t
WHERE t.sog_id = 0;
--以列表方式显示节点数据
SELECT t.sog_id,
x.username,
x.detail,
TO_DATE (x.atime, 'yyyy-mm-dd hh24:Mi:ss') replyTime
FROM s_org t,
XMLTABLE (
'/root/cont'
PASSING t.sog_remark
COLUMNS username VARCHAR2 (40) PATH 'username',
detail VARCHAR2 (200) PATH 'detail',
atime VARCHAR2 (19) PATH 'atime') x
WHERE T.SOG_ID = 0 AND XMLEXISTS ('/root/cont' PASSING t.sog_remark)
ORDER BY replytime DESC;
--检索某个节点的数据
SELECT t.sog_id, x.*
FROM s_org t,
XMLTABLE (
'/root/cont'
PASSING t.sog_remark
COLUMNS username VARCHAR (40) PATH 'username',
detail VARCHAR (200) PATH 'detail',
atime VARCHAR2 (19) PATH 'atime') x
WHERE T.SOG_ID = 0 AND x.username = 'twb0';
--增加节点
UPDATE s_org t
SET t.sog_remark =
INSERTCHILDXML (
t.sog_remark,
'/root',
'cont',
xmltype (
'<cont><username>twb3</username><detail>xxxxx3</detail><atime>2016-05-25 16:30:00</atime></cont>'))
WHERE T.SOG_ID = 0;
UPDATE s_org t
SET T.SOG_REMARK =
APPENDCHILDXML (
t.sog_remark,
'/root',
xmltype (
'<cont><username>twb3</username><detail>xxxxx3</detail><atime>2016-05-24 16:30:00</atime></cont>'))
WHERE T.SOG_ID = 0;
--修改某个节点数据
UPDATE s_org t
SET t.sog_remark =
UPDATEXML (t.sog_remark,
'/root/cont/username[text()="twb3"]/text()',
'testname')
WHERE T.SOG_ID = 0
AND XMLEXISTS ('/root/cont/username[text()="twb3"]'
PASSING t.sog_remark);
--删除指定的节点
UPDATE s_org t
SET T.SOG_REMARK =
DELETEXML (t.sog_remark,
'/root/cont[username="testname"]')
WHERE T.SOG_ID = 0
AND XMLEXISTS ('/root/cont/username[text()="testname"]'
PASSING t.sog_remark);
SELECT t.sog_id, t.sog_remark
FROM s_org t
WHERE t.sog_id = 0;
DELETE FROM s_org
WHERE sog_id = 0;
--数据准备
INSERT INTO s_org (sog_id, sog_remark)
VALUES (0, xmltype ('<?xml version="1.0" encoding="UTF-8"?>
<root>
<cont>
<username>twb0</username>
<atime>2016-05-20 16:30:00</atime>
<detail>xxxxx0</detail>
</cont>
<cont>
<username>twb1</username>
<atime>2016-05-21 16:30:00</atime>
<detail>xxxxx1</detail>
</cont>
<cont>
<username>twb2</username>
<atime>2016-05-22 16:30:00</atime>
<detail>xxxxx2</detail>
</cont>
</root>'));
--查询出某个节点的所有数据
SELECT XMLQUERY ('/root/cont/username'
PASSING t.sog_remark RETURNING CONTENT)
FROM s_org t
WHERE t.sog_id = 0;
--以列表方式显示节点数据
SELECT t.sog_id,
x.username,
x.detail,
TO_DATE (x.atime, 'yyyy-mm-dd hh24:Mi:ss') replyTime
FROM s_org t,
XMLTABLE (
'/root/cont'
PASSING t.sog_remark
COLUMNS username VARCHAR2 (40) PATH 'username',
detail VARCHAR2 (200) PATH 'detail',
atime VARCHAR2 (19) PATH 'atime') x
WHERE T.SOG_ID = 0 AND XMLEXISTS ('/root/cont' PASSING t.sog_remark)
ORDER BY replytime DESC;
--检索某个节点的数据
SELECT t.sog_id, x.*
FROM s_org t,
XMLTABLE (
'/root/cont'
PASSING t.sog_remark
COLUMNS username VARCHAR (40) PATH 'username',
detail VARCHAR (200) PATH 'detail',
atime VARCHAR2 (19) PATH 'atime') x
WHERE T.SOG_ID = 0 AND x.username = 'twb0';
--增加节点
UPDATE s_org t
SET t.sog_remark =
INSERTCHILDXML (
t.sog_remark,
'/root',
'cont',
xmltype (
'<cont><username>twb3</username><detail>xxxxx3</detail><atime>2016-05-25 16:30:00</atime></cont>'))
WHERE T.SOG_ID = 0;
UPDATE s_org t
SET T.SOG_REMARK =
APPENDCHILDXML (
t.sog_remark,
'/root',
xmltype (
'<cont><username>twb3</username><detail>xxxxx3</detail><atime>2016-05-24 16:30:00</atime></cont>'))
WHERE T.SOG_ID = 0;
--修改某个节点数据
UPDATE s_org t
SET t.sog_remark =
UPDATEXML (t.sog_remark,
'/root/cont/username[text()="twb3"]/text()',
'testname')
WHERE T.SOG_ID = 0
AND XMLEXISTS ('/root/cont/username[text()="twb3"]'
PASSING t.sog_remark);
--删除指定的节点
UPDATE s_org t
SET T.SOG_REMARK =
DELETEXML (t.sog_remark,
'/root/cont[username="testname"]')
WHERE T.SOG_ID = 0
AND XMLEXISTS ('/root/cont/username[text()="testname"]'
PASSING t.sog_remark);
SELECT t.sog_id, t.sog_remark
FROM s_org t
WHERE t.sog_id = 0;
0 0
- oracle xmltype解决方案
- Oracle xmltype解决方案
- oracle xmltype简介
- oracle的xmltype例子
- oracle的xmltype例子
- oracle的xmltype例子
- oracle xmltype简单操作
- Oracle 中的XMLTYPE应用学习
- Oracle的XMLTYPE的处理
- Oracle XMLType Store as CLOB
- xmltype
- C# 操作 XML 数据库类型、Oracle XMLType
- C# 操作 XML 数据库类型、Oracle XMLType
- Oracle 9i中的XMLTYPE应用学习
- oracle xmltype 创建 、插入、更新、查找
- oracle xml数据构建 XMLType相关函数
- java 写xml到 Oracle xmlType
- oracle xml数据构建 XMLType相关函数
- php 报错等级
- 练习四 1022
- 深入理解SELinux SEAndroid(第一部分)
- 获取attr属性的值和getDimension方法获取到资源文件中定义的dimension值
- Jmeter中利用BeanShell Sampler与控制台进行交互
- Oracle xmltype解决方案
- ubuntu下升级cmake
- 爬虫整理与复习
- Android自定义图表:ChartView
- 【Android基础】Android 手动显示和隐藏软键盘
- 嵌入式Android系统开发-未完待续
- 微信公众号开发可以参考
- js时间对象
- leetcode15:3Sum