Oracle使用Sql把XML解析成表(Table)的方法

SELECT * FROM XMLTABLE(‘$B/DEAL_BASIC/USER_DEAL_INFO‘ PASSING
    XMLTYPE(‘<?xml version="1.0" encoding="gb2312" ?>
              <DEAL_BASIC>
                 <USER_DEAL_INFO>
                     <USER_DEAL_ID>1000100001</USER_DEAL_ID>
                     <DEAL_INURE_TIME>20081130</DEAL_INURE_TIME>
                     <DEAL_EXPIRE_TIME>30000101</DEAL_EXPIRE_TIME>
                     <DEAL_CREATE_TIME>20081130</DEAL_CREATE_TIME>
                 </USER_DEAL_INFO>
                 <USER_DEAL_INFO>
                     <USER_DEAL_ID>1000100002</USER_DEAL_ID>
                     <DEAL_INURE_TIME>20081131</DEAL_INURE_TIME>
                     <DEAL_EXPIRE_TIME>30000102</DEAL_EXPIRE_TIME>
                     <DEAL_CREATE_TIME>20081131</DEAL_CREATE_TIME>
                 </USER_DEAL_INFO>
              </DEAL_BASIC>‘) AS B
    COLUMNS USER_DEAL_ID VARCHAR2(50) PATH
    ‘/USER_DEAL_INFO/USER_DEAL_ID‘,
    DEAL_INURE_TIME VARCHAR2(50) PATH
    ‘/USER_DEAL_INFO/DEAL_INURE_TIME‘,
    DEAL_EXPIRE_TIME VARCHAR2(50) PATH
    ‘/USER_DEAL_INFO/DEAL_EXPIRE_TIME‘,
    DEAL_CREATE_TIME VARCHAR2(50) PATH
    ‘/USER_DEAL_INFO/DEAL_CREATE_TIME‘)

结果:

参:Oracle使用Sql把XML解析成表(Table)的方法

时间: 2024-10-13 01:35:08

Oracle使用Sql把XML解析成表(Table)的方法的相关文章

oracle 、sql server 、mysql 复制表数据

我们知道在oracle 中复制表数据的方式是使用 create table table_name as select * from table_name 而在sql server  中是不能这么使用的 语句如下: select * into table_name from table_name; 而在 mysql 中有两种方式 1. create table a like b 2. 类似oracle的方式 create table table_name as select * from tabl

代码收藏系列--php--加载sql文件并解析成数组

php加载sql文件,解析成以分号分割的数组.(支持存储过程和函数提取,自动过滤注释) /** * 加载sql文件为分号分割的数组 * <br />支持存储过程和函数提取,自动过滤注释 * <br />例如: var_export(load_sql_file('mysql_routing_example/fn_cdr_parse_accountcode.sql')); * @param string $path 文件路径 * @return boolean|array * @sin

ORACLE基本SQL语句-用户及建表篇

一.用户相关SQL语句 /*新建用户*/create user SA identified by 2013; 说明:SA用户名,2013密码 /*授权connect,resource给用户sa*/grant connect,resource to sa; 说明:CONNECT角色: --是授予最终用户的典型权利,最基本的 . ESOURCE 角色: --是授予开发人员的 /*查询所有的用户*/select * from all_users; /*将表STU查询权限授予SA*/GRANT SELE

c# XML解析成EasyUI TreeGrid格式

1.分析EasyUI TreeGrid的数据格式,demo的格式是这样的:http://www.jeasyui.net/demo/treegrid_data1.json 分析之后,得到基本的JSON格式: [ { "id": 1, "name": "name1", "value": "", "children": [ { "id": 2, "name&quo

清空SQL Server数据库中所有表数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,

JavaScript实现将xml转换成html table

JavaScript实现将xml转换成html table表格的方法. function ConvertToTable(targetNode) {  // if the targetNode is xmlNode this line must be removed  // i couldnt find a way to parse xml string to xml node  // so i parse xml string to xml document  targetNode = targ

ORACLE之SQL语句内部解析过程【weber出品】

一.客户端通过监听连接到数据库,数据库开启一个server process进程来接收客户端传过来的sql. 1.这条sql语句从来都没有被执行过.(硬解析) 2.这条sql语句被执行过.(软解析) 二.我们来看一条SQL语句内部解析到底经历了什么? sql硬解析解析的步骤 1.语法检测:检测sql语句有没有语法错误,是否符合sql规范 2.语义检测:检测sql语句涉及的对象是否存在. 3.检查共享池中是否存在相同的已经执行过的sql语句. 4.通过数据字典的统计信息,来计算最优执行计划. sql

mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享

摘要: 下文讲述清空数据库中所有表信息的方法分享,如下所示: 实验环境:sql server 2008 实现思路: 1.禁用所有约束,外键 2.禁用所有触发器 3.删除表数据 4.开启触发器 5.开启约束 CREATE PROCEDURE proc_deleteDateSql /* 生成清除数据库表数据的脚本方法分享 */ AS EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL' EXEC sp_MSForEachTable

oracle中用SQL语句创建和管理表

表名和列名的命名规则: 必须以字母开头 必须在1-30个字符之间 只能包含A-Z,a-z,0-9,_,$,# 不能与用户定义的其它对象重名 不能使用ORACLE的保留字 创建前具备的条件: CREATE TABLE权限 建表时必须指定: 表名 列名,列的数据类型,最大长度 数据类型: varchar2(size) 变长字符型(最大长为4000字符) char(size)  定长字符型(最大2000字符) number(p,s)  数值型 date   日期型 long   变长大字符型(最大2G