KingbaseES 原生XML系列五--XML关系表函数
KingbaseES 原生XML系列五--XML关系表函数(QUERY_TO_XML,TABLE_TO_XML,XMLTABLE)
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的一种公共语言。在不同平台下产生的信息,可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
xml数据类型可以被用来存储XML数据。它比直接在一个text域中存储XML数据的优势在于,它会检查输入值的结构是不是良好,并且有支持函数用于在其上执行类型安全的操作。
本文详细介绍了KingbaseES中集成的相关xml关系表函数使用。
准备数据:
CREATE TABLE "public"."xmldata" (
"id" integer NULL,
"comm" varchar NULL,
"xmlvarchar" varchar NULL,
"xmldata" xml NULL,
"XMLarray" xml NULL
);
INSERT INTO xmldata values(1, 'zhangsan' , '<kes>aaa</kes>' , '<kes><sql>sql001</sql><rac>rac001</rac></kes>' , '<kes><version>v8r3001</version><version>v8r6001</version></kes>');
INSERT INTO xmldata values(2, 'lisi' , '<kes>bbb</kes>' , '<kes><sql>sql002</sql><rac>rac002</rac></kes>' , '<kes><version>v8r3002</version><version>v8r6002</version></kes>');
INSERT INTO xmldata values(3, 'wangwu' , '<kes>ccc</kes>' , '<kes><sql>sql003</sql><rac>rac003</rac></kes>' , '<kes><version>v8r3003</version><version>v8r6003</version></kes>');
xml函数列表
json函数简介
QUERY_TO_XML
功能:
query_to_xml执行由参数query传递的查询并且映射结果集.
用法:
query_to_xml(query text, nulls boolean, tableforest boolean, targetns text)
示例:
test=# select * from query_to_xml('select id , comm from xmldata' ,true ,true , 'kes') ;
query_to_xml
-------------------------------------------------------------------------
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>1</id> +
<comm>zhangsan</comm> +
</row> +
+
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>2</id> +
<comm>lisi</comm> +
</row> +
+
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>3</id> +
<comm>wangwu</comm> +
</row> +
+
(1 行记录)
test=# select * from query_to_xml('select id , comm from xmldata' ,false ,true , 'kes') ;
query_to_xml
-------------------------------------------------------------------------
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>1</id> +
<comm>zhangsan</comm> +
</row> +
+
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>2</id> +
<comm>lisi</comm> +
</row> +
+
<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>3</id> +
<comm>wangwu</comm> +
</row> +
+
(1 行记录)
test=# select * from query_to_xml('select id , comm from xmldata' ,true ,false , 'kes') ;
query_to_xml
---------------------------------------------------------------------------
<table xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
+
<row> +
<id>1</id> +
<comm>zhangsan</comm> +
</row> +
+
<row> +
<id>2</id> +
<comm>lisi</comm> +
</row> +
+
<row> +
<id>3</id> +
<comm>wangwu</comm> +
</row> +
+
</table> +
(1 行记录)
TABLE_TO_XML
功能:
table_to_xml映射由参数tbl传递的命名表的内容。regclass类型接受使用常见标记标识表的字符串,包括可选的模式限定和双引号。
用法:
table_to_xml(tbl regclass, nulls boolean, tableforest boolean, targetns text)
示例:
test=# select * from tt;
id | name
----+------
1 | a
0 | b
1 | a
0 | A
1 | a
(5 行记录)
test=# select * from table_to_xml('tt' , true , true , 'kes');
table_to_xml
------------------------------------------------------------------------
<tt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>1</id> +
<name>a</name> +
</tt> +
+
<tt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>0</id> +
<name>b</name> +
</tt> +
+
<tt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>1</id> +
<name>a</name> +
</tt> +
+
<tt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>0</id> +
<name>A</name> +
</tt> +
+
<tt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
<id>1</id> +
<name>a</name> +
</tt> +
+
(1 行记录)
test=# select * from table_to_xml('tt' , true , false , 'kes');
table_to_xml
------------------------------------------------------------------------
<tt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="kes">+
+
<row> +
<id>1</id> +
<name>a</name> +
</row> +
+
<row> +
<id>0</id> +
<name>b</name> +
</row> +
+
<row> +
<id>1</id> +
<name>a</name> +
</row> +
+
<row> +
<id>0</id> +
<name>A</name> +
</row> +
+
<row> +
<id>1</id> +
<name>a</name> +
</row> +
+
</tt> +
(1 行记录)
XMLTABLE
功能:
XMLTable将 XQuery 评估的结果映射到相关的行和列。
用法:
XMLTABLE([XML_namespaces_clause,] XQuery_string XMLTABLE_option)
XMLnamespaces_clause:
XMLNAMESPACES({[string AS identifier|DEFAULT sting]}[,...])
**注意:** 您最多可以指定一个DEFAULT string子句。
XMLTABLE_options:
[XML_passing_clause][RETURNING SEQUENCE BY REF][COLUMN XML_table_column [,...]]
XML_passing_clause:
PASSING [BY VALUE] (expr [ as indentifier ])[,...]
XML_table_column:
column {FOR ORDINALITY|{datatype|XMLTYPE[(SEQUNCE) BY REF ]}[PATH string][DEFALUT]}
示例:
test=# select t.* from xmldata , xmltable('/kes' passing xmldata columns c1 text path 'sql' , c2 text path 'rac') t ;
c1 | c2
--------+--------
sql001 | rac001
sql002 | rac002
sql003 | rac003
(3 行记录)
KingbaseES 原生XML系列五--XML关系表函数的更多相关文章
- struts2官方 中文教程 系列五:处理表单
先贴个本帖的地址,免得其它网站被爬去了struts2教程 官方系列五:处理表单 即 http://www.cnblogs.com/linghaoxinpian/p/6906298.html 下载本章 ...
- SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测 ...
- eBPF监控工具bcc系列五工具funccount
eBPF监控工具bcc系列五工具funccount funccount函数可以通过匹配来跟踪函数,tracepoints 或USDT探针.例如所有以vfs_ 开头的内核函数. ./funccount ...
- 使用XML的五种场合,XML基本规则,XML的术语,结构与语法
在很多研讨会和培训班上我遇到过许多人,他们还不明白为什么要使用XML也不知道如何 在他们的应用中使用XML.一些来自诸如Gartner公司的报告建议说,商业公司不能再做 局外人了,不能对XML置之不理 ...
- SGML、HTML、XML、XHTML的关系
我们先看看它们的历史起源: SGML--1986年国际标准化组织出版发布了一个信息管理方面的国际标准(ISO 8879:1986信息处理). HTML 2.0--1995年11月作为RFC 1866发 ...
- maven系列--settings.xml
安装maven,会有一份settings.xml文件,我们可以理解这份文件就是用来管理本地maven的一系列东西的.这里我先贴出一份完整的原始xml. <?xml version="1 ...
- XML系列之--Linq操作带属性的XML(四)
关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...
- Mysql系列五:数据库分库分表中间件mycat的安装和mycat配置详解
一.mycat的安装 环境准备:准备一台虚拟机192.168.152.128 1. 下载mycat cd /softwarewget http:-linux.tar.gz 2. 解压mycat tar ...
- XML系列之--创建电文格式的XML(一)
关于XML,学校那会,老师在口中仅仅提及,自己也未曾深入接触过,仅是些将最基本XML文件内容显示在web定义的表格中之类的简单操作,如今项目中的收发电文涉及到复杂XML的操作.趁此契机好好回顾下XML ...
- 比較全的XML系列工具 能够轻松实现排版、转换和打印!
XML系列 --------------------------------------------------------------------------------1.Xsl Formatte ...
随机推荐
- mysqlGTID主从同步出现1236错误问题
从主库xtrabackup备份,配置好gtid复制,从主库的从库复制.一直报错误 Last_IO_Error: Got fatal error 1236 from master when readin ...
- pikachu sql inject bool盲注
输入框中输入 已知用户名 kobe 显示了用户信息 your uid:3 your email is: kobe@pikachu 输入kobe'看一下情况 显示 您输入的username不存在,请重新 ...
- 2021-09-15 JavaScript中强制将某个未知类型变量转成基础数据类型
为什么要强制将某个未知类型变量转成基础数据类型? 实际业务场景里,一个变量的数据是否合法或符合预期,会影响到自己的代码的可靠性.比如在别人使用自己写的自定义函数,而自己写的函数中的一些值是需要对入参严 ...
- APScheduler可能遇到的问题
uWsgi使用多进程模式启动Django项目,因此我们会有多个进程去执行这个定时任务,导致定时任务被重复执行.解决这个问题的方法,我们直接就会想到采用加锁的方式.第一个拿到锁的进程,执行定时任务,其余 ...
- Android内存优化—内存优化总结
内存优化总结 内存问题 内存抖动:导致GC导致卡顿 内存泄漏:导致频繁GC,可用内存减少 内存溢出:导致OOM 工具排查 AS中的Profiler查看内存情况,是否锯齿状,是否持续上升 MAT排查 L ...
- Error creating bean with name 'XXX': Bean with name 'senseOneToSomeFeignImpl' has been injected into other beans [XXXXXX] in its raw version as part of a circular reference
关于Spring框架中的循环依赖问题,您可以尝试以下几种方法来解决: 重新定义Bean依赖:重构代码以消除循环依赖.这可能涉及重新设计类,使它们不相互依赖即可运行. 使用Setter注入:与构造函数注 ...
- 【Azure 事件中心】Spring Boot 集成 Event Hub(azure-spring-cloud-stream-binder-eventhubs)指定Partition Key有异常消息
问题描述 在Spring Boot应用中集成Event Hub,发送消息时指定Partition Key,日志中发现异常: 应用使用Event Hub版本为 <dependency> &l ...
- 连接 AI,NebulaGraph Python ORM 项目 Carina 简化 Web 开发
作者:Steam & Hao 本文整理自社区第 7 期会议中 13'21″ 到 44'11″ 的 Python ORM 的分享,视频见 https://www.bilibili.com/vid ...
- ubuntu版本为16.04,英文改成中文解决方法和解决中文输入法无效的问题,关于无法打开锁文件的解决方法
https://jingyan.baidu.com/article/4853e1e565e1781908f7266c.html,根据这篇文章操作完成后重启ubuntu之后ubuntu就会变成中文,重启 ...
- 为什么带NOLOCK的查询语句还会造成阻塞
背景 客户反映HIS数据库在11点出现了长时间的阻塞,直到手动KILL掉阻塞的源头.请我们协助分析原因,最终定位到.NET程序中使用的SqlDataReader未正常关闭导致. 现象 登录SQL专家云 ...