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 ...
随机推荐
- BentoML:如何使用 JuiceFS 加速大模型加载
BentoML 是一个开源的大语言模型(LLM) AI 应用的开发框架和部署工具,致力于为开发者提供最简单的构建大语言模型 AI 应用的能力,其开源产品已经支持全球数千家企业和组织的核心 AI 应用. ...
- 解决Burpsuite1.6中文显示乱码问题
说明 最近公司项目被测试团队测试出有越权访问等安全问题,用的是这个Burpsuit工具,我想做软件测试的同学应该很熟悉.那么中间在模拟请求响应过程中发现返回的信息中文是乱码,搜索了一圈发现很多人提供的 ...
- js根据输入字符长度自动调整textarea高度
1.编写html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 【Android逆向】破解看雪test3.apk方案二
方案二就是要hook那三个条件,不让追加字符串变成false v20 = "REAL"; clazz = _JNIEnv::FindClass(env, "android ...
- docker部署fastdfs并在Django中集成
拉取Fastdfs镜像 docker pull delron/fastdfs 构建Tracker容器 是在Linux环境下,使用docker镜像构建tracker容器,用于启动跟踪服务器,起到调度的作 ...
- Ubuntu如何卸载mysql
首先在终端中查看MySQL的依赖项:dpkg --list|grep mysql 卸载: sudo apt-get remove mysql-common 卸载:sudo apt-get autore ...
- signature hdr data: BAD, no. of btyes(9088) out of range 问题排查与解决方案
在使用yum工具安装gcc的时候,报出了signature hdr data: BAD, no. of btyes(9088) out of range 的问题 这是由于centos8中rpm工具存在 ...
- 【Azure 应用服务】收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)
问题描述 收集App Service 关于Availability Zone, Health check 以及 Traffic Manager的文档,并了解高可用(HA)和灾备(DR)的具体办法 问题 ...
- xml中xsd、xsi、xmlns的含义
XML是可扩展标记语言,它定义了按格式编码文件的一系列规则[3],编码的文件是机器可读和人可读的.XML文件对于机器可读是基于XSD(XML Schema Definition)[1]的.XSD是受W ...
- union和union all的区别?
一. 显示结果不同 union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果集全部显示出来 二.对重复结果的处理不同 union all是直接连接,取到的是所有值,记录可能有的 ...