XMLTABLE
XMLTABLE
Syntax
Description of the illustration xmltable.gif
XMLnamespaces_clause::=
Description of the illustration xml_namespaces_clause.gif
XMLTABLE_options::=
Description of the illustration xmltable_options.gif
XML_passing_clause::=
Description of the illustration xml_passing_clause.gif
XML_table_column::=
Description of the illustration xml_table_column.gif
Purpose
XMLTable
maps the result of an XQuery evaluation into relational rows and columns. You can query the result returned by the function as a virtual relational table using SQL.
The
XMLNAMESPACES
clause contains a set of XML namespace declarations. These declarations are referenced by the XQuery expression (the evaluated
XQuery_string
), which computes the row, and by the XPath expression in the
PATH
clause ofXML_table_column
, which computes the columns for the entire
XMLTable
function. If you want to use qualified names in thePATH
expressions of the
COLUMNS
clause, then you need to specify theXMLNAMESPACES
clause.XQuery_string
is a complete XQuery expression and can include prolog declarations.The
expr
in theXML_passing_clause
is an expression returning an
XMLType
or an instance of a SQL scalar data type that is used as the context for evaluating the XQuery expression. You can specify only one
expr
in thePASSING
clause without an identifier. The result of evaluating each
expr
is bound to the corresponding identifier in the
XQuery_string
. If anyexpr
that is not followed by an
AS
clause, then the result of evaluating that expression is used as the context item for evaluating the
XQuery_string
.The optional
COLUMNS
clause defines the columns of the virtual table to be created by
XMLTable
.If you omit the
COLUMNS
clause, thenXMLTable
returns a row with a single
XMLType
pseudocolumn namedCOLUMN_VALUE
.The
datatype
is required unless
XMLTable
is used with XML schema-based storage ofXMLType
,
datatype
. In this case, if you omit
datatype
, Oracle XML DB infers the data type from the XML schema. If the database is unable to determine the proper type for a node, then a default type of
VARCHAR2(4000)
is used.FOR
ORDINALITY
specifies that column is to be a column of generated row numbers. There must be at most one
FOR
ORDINALITY
clause. It is created as aNUMBER
column.The optional
PATH
clause specifies that the portion of the XQuery result that is addressed by XQuery expression string is to be used as the column content. If you omit
PATH
, then the XQuery expressioncolumn
is assumed. For example:XMLTable(... COLUMNS xyz
is equivalent to
XMLTable(... COLUMNS xyz PATH 'XYZ')
You can use different
PATH
clauses to split the XQuery result into different virtual-table columns.The optional
DEFAULT
clause specifies the value to use when the
expression results in an empty sequence. Its
PATHexpr
is an XQuery expression that is evaluated to produce the default value.See Also:
Oracle XML DB Developer's Guide for more information on the
XMLTable
function, including additional examples, and on XQuery in generalExamples
The following example converts the result of applying the XQuery
'/Warehouse'
to each value in the
warehouse_spec
column of thewarehouses
table into a virtual relational table with columns
Water
andRail
:SELECT warehouse_name warehouse,
warehouse2."Water", warehouse2."Rail"
FROM warehouses,
XMLTABLE('/Warehouse'
PASSING warehouses.warehouse_spec
COLUMNS
"Water" varchar2(6) PATH '/Warehouse/WaterAccess',
"Rail" varchar2(6) PATH '/Warehouse/RailAccess')
warehouse2; WAREHOUSE Water Rail
----------------------------------- ------ ------
Southlake, Texas Y N
San Francisco Y N
New Jersey N N
Seattle, Washington N Y
XMLTABLE的更多相关文章
- Oracle XMLTable 使用教程与实例
从Oracle 10g开始,甲骨文公司新增了XQuery和XMLTable两个功能作为处理XML的武器. XMLQuery一样,您可以使用XQuery语言构造XML数据和查询XML和关系数据.你可以使 ...
- Oracle中使用虚拟表DUAL或XMLTABLE返回顺序数列
在Oracle中使用虚拟表DUAL或XMLTABLE返回顺序数列 使用DUAL表和CONNECT BY LEVEL的特殊用法,返回一个1-10的顺序数列,示例代码如下: SELECT LEVEL FR ...
- MS SQL巡检系列——检查重复索引
前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...
- Oracle数据行拆分多行
工作和学习中常常会遇到一行要分割成多行数据的情况,在此整理一下做下对比. 单行拆分 如果表数据只有一行,则可以直接在原表上直接使用connect by+正则的方法,比如: select regexp_ ...
- Oracle行转列、列转行的Sql语句总结
多行转字符串 这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect i ...
- 45 个非常有用的 Oracle 查询语句
这里我们介绍的是 40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 Oracle 开发者都必备的技能,所以快 ...
- oracle---日期等plsql
日期/时间 相关查询 1.获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 "SYSDATE"来指定查询的日期. SELECT TRUNC ( ...
- 如何查看oracle数据库的所有的关键字
管理员账户登录后,执行以下命令: select * from v$reserved_words 附上参考: NOMONITORINGRECORDS_PER_BLOCKCASCADEDYNAMIC_S ...
- .net之工作流工程展示及代码分享(三)数据存储引擎
数据存储引擎是本项目里比较有特色的模块. 特色一,使用接口来对应不同的数据库.数据库可以是Oracle.Sqlserver.MogoDB.甚至是XML文件.采用接口进行对应: public inter ...
随机推荐
- bzoj4767两双手 容斥+组合
4767: 两双手 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 684 Solved: 208[Submit][Status][Discuss] ...
- 数据权限管理中心 - 基于mybatis拦截器实现
数据权限管理中心 由于公司大部分项目都是使用mybatis,也是使用mybatis的拦截器进行分页处理,所以技术上也直接选择从拦截器入手 需求场景 第一种场景:行级数据处理 原sql: select ...
- 华科机考:a+b
时间限制:1秒 空间限制:32768K 题目描述 实现一个加法器,使其能够输出a+b的值. 输入描述: 输入包括两个数a和b,其中a和b的位数不超过1000位. 输出描述: 可能有多组测试数据 ...
- 【SpringMVC】<context:include-filter>和<context:exclude-filter>使用时要注意的地方
http://jinnianshilongnian.iteye.com/blog/1762632 http://blog.51cto.com/wenshengzhu/1700340 http://ww ...
- centos7.2中文乱码解决办法
centos7.2 中文乱码解决办法 1.查看安装中文包: 查看系统是否安装中文语言包 (列出所有可用的公共语言环境的名称,包含有zh_CN) # locale -a |grep "zh_C ...
- 实现一个ordeeddict
class MyOrderdict(): def __init__(self, mydict): self._cur = 0 self._mykeys = [] self._myvalues = [] ...
- log4j不生成日志文件的问题
直接看我的注解吧 注意地址的斜杠,还有地址别写什么相对地址了,这包太老了,服务器update一下兼容问题就出来了. #第一个参数定义达到什么程度就输出 第二第三....第N 定义输出的类型 #debu ...
- Java反射异常:java.lang.NoSuchFieldException
版权声明:[分享也是一种提高]个人转载请在正文开头明显位置注明出处,未经作者同意禁止企业/组织转载,禁止私自更改原文,禁止用于商业目的. 今天用反射给对象赋值,有一个属性始终报错,主要错误信息如下: ...
- python学习之路前端-HTML
HTML概述 HTML是英文Hyper Text Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记).相当于定义统一的一套规则,大家都来遵守他,这样就可以 ...
- Node.js 定时器
稳定性: 5 - 锁定 所有的定时器函数都是全局的.不需要通过 require() 就可以访问. setTimeout(callback, delay[, arg][, ...]) delay 毫秒之 ...