KingbaseES 原生XML系列一 -- XML构造函数
KingbaseES 原生XML系列一--XML构造函数(XML,XMLPARSE,XMLSERIALIZE,IS-DOCUMENT,XML_IS_WELL_FORMED,XML_IS_WELL_FORMED_CONTENT,XML_IS_WELL_FORMED_DOCUMENT)
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函数列表
- XML
- XMLPARSE
- XMLSERIALIZE
- IS-DOCUMENT
- XML_IS_WELL_FORMED
- XML_IS_WELL_FORMED_CONTENT
- XML_IS_WELL_FORMED_DOCUMENT
json函数简介
XML
功能:
从字符数据中生成一个xml类型的值。
用法:
xml( text )
示例:
test=# select xml(comm) ,sys_typeof( xml(comm)),comm from xmldata ;
xml | sys_typeof | comm
----------+------------+----------
zhangsan | xml | zhangsan
lisi | xml | lisi
wangwu | xml | wangwu
(3 行记录)
XMLPARSE
功能:
从字符数据中生成一个xml类型的值,可以使用函数xmlparse。
用法:
XMLPARSE ( { DOCUMENT | CONTENT } value)
示例:
-- DOCUMENT 字符生成xml格式,字符需要是xml标准格式
test=# select xmlparse(document xmlvarchar) from xmldata ;
xmlparse
----------------
<kes>aaa</kes>
<kes>bbb</kes>
<kes>ccc</kes>
(3 行记录)
-- CONTENT 将字符生成xml格式的xml值
test=# select xmlparse(content comm) ,sys_typeof(xmlparse(content comm)) from xmldata ;
xmlparse | sys_typeof
----------+------------
zhangsan | xml
lisi | xml
wangwu | xml
(3 行记录)
XMLSERIALIZE
功能:
作为xmlparse逆操作,从xml产生一个字符串。
用法:
XMLSERIALIZE ( { DOCUMENT | CONTENT } value AS type )
type可以是 character、character varying或 text
示例:
test=# select xmlserialize(document xmldata as text),xmlserialize(document xmldata as varchar) from xmldata ;
xmlserialize | xmlserialize
-----------------------------------------------+-----------------------------------------------
<kes><sql>sql001</sql><rac>rac001</rac></kes> | <kes><sql>sql001</sql><rac>rac001</rac></kes>
<kes><sql>sql002</sql><rac>rac002</rac></kes> | <kes><sql>sql002</sql><rac>rac002</rac></kes>
<kes><sql>sql003</sql><rac>rac003</rac></kes> | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)
IS-DOCUMENT
功能:
如果参数 XML 值是一个正确的 XML 文档,则IS DOCUMENT返回真,如果不是则返回假
用法:
xml IS DOCUMENT
示例:
test=# select (comm is document), comm ,(xmldata is document),xmldata from xmldata ;
?column? | comm | ?column? | xmldata
----------+----------+----------+-----------------------------------------------
f | zhangsan | t | <kes><sql>sql001</sql><rac>rac001</rac></kes>
f | lisi | t | <kes><sql>sql002</sql><rac>rac002</rac></kes>
f | wangwu | t | <kes><sql>sql003</sql><rac>rac003</rac></kes>
(3 行记录)
XML_IS_WELL_FORMED
功能:
检查一个text串是不是一个良构的 XML,返回一个布尔结果。
用法:
xml_is_well_formed(text)
示例:
test=# SELECT xml_is_well_formed('<abc>') , xml_is_well_formed('<abc/>');
xml_is_well_formed | xml_is_well_formed
--------------------+--------------------
f | t
(1 行记录)
XML_IS_WELL_FORMED_CONTENT
功能:
检查一个text串是不是一个良构的 XML,返回一个布尔结果。
用法:
xml_is_well_formed_content(text)
示例:
test=# SELECT xml_is_well_formed_content('<abc>') , xml_is_well_formed_content('<abc/>');
xml_is_well_formed_content | xml_is_well_formed_content
----------------------------+----------------------------
f | t
(1 行记录)
XML_IS_WELL_FORMED_DOCUMENT
功能:
检查一个text串是不是一个良构的 XML,返回一个布尔结果。
用法:
xml_is_well_formed_document(text)
示例:
test=# SELECT xml_is_well_formed_document('<abc>') , xml_is_well_formed_document('<abc/>');
xml_is_well_formed_document | xml_is_well_formed_document
-----------------------------+-----------------------------
f | t
(1 行记录)
KingbaseES 原生XML系列一 -- XML构造函数的更多相关文章
- C#编程基础->XML系列导航
缘由 最近开发的小程序过程中需要涉及到XML相关操作,突然发现自己对于这知识点了解的太少,急需学习加强.刚好项目的时间也不是很紧急,自己就总结XML相关知识点.一个方面自己学习,一个方面也希望可以帮到 ...
- XML系列之--Linq操作带属性的XML(四)
关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...
- XML系列之--对电文格式XML的简单操作(三)
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- XML系列之--创建电文格式的XML(一)
关于XML,学校那会,老师在口中仅仅提及,自己也未曾深入接触过,仅是些将最基本XML文件内容显示在web定义的表格中之类的简单操作,如今项目中的收发电文涉及到复杂XML的操作.趁此契机好好回顾下XML ...
- XML系列之--解析电文格式的XML(二)
上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...
- 比較全的XML系列工具 能够轻松实现排版、转换和打印!
XML系列 --------------------------------------------------------------------------------1.Xsl Formatte ...
- OAF_文件系列6_实现OAF导出XML文件javax.xml.parsers/transformer(案例)
20150803 Created By BaoXinjian
- maven系列--settings.xml
安装maven,会有一份settings.xml文件,我们可以理解这份文件就是用来管理本地maven的一系列东西的.这里我先贴出一份完整的原始xml. <?xml version="1 ...
- Maven系列--web.xml 配置详解
一 .web.xml介绍 启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 紧接着,容 ...
- JS解析XML文件和XML字符串
JS解析XML文件 <script type='text/javascript'> loadXML = function(xmlFile){ var xmlDoc=null; //判断浏览 ...
随机推荐
- Oracle数据库报ORA-01078和LRM-00109错误解决方法
创建实例后,进入sqlplus启动报错: sqlplus / as sysdba; SQL*Plus: Release 11.1.0.6.0 - Production on Wed A ...
- Oracle Linux6下安装Oracle 12c实战
经过N次安装尝试吐血总结,希望对大家有所帮助,同时做下记录备忘: 总结:安装前的准备工作是关键!!!Check and recheck! 参考:http://docs.oracle.com/cd/E1 ...
- Django实战之文件上传下载
项目介绍 最近学习django,通过文件上传下载这个小项目,总结下常用的知识点. 做这个案例我有以下需求: 1.要支持一次上传多个文件 2.支持上传后记录上传的数据以及列表展示 3.支持下载和删除文件 ...
- Programming Abstractions in C阅读笔记:p293-p302
<Programming Abstractions in C>学习第73天,p293-p302总结,总计10页. 一.技术总结 1.时间复杂度 (1)quadratic time(二次时间 ...
- 一个Git Commit Message模板
一个统一的commit消息模板可以约束团队成员使用一致的方式提交变更信息,这样也方便集成工具进行合规检查. 通常来讲,commit信息应该包含如下内容: <type>(<scope& ...
- Taro兼容h5的一些小问题
背景:先做了小程序,现在需要兼容h5 问题一:Image组件mode属性设置为aspectFill在h5上没效果 解决方法:给img加样式 object-fit: cover (例子如下) // js ...
- ProtoBuffer-nanopb介绍
目录 一.需求 二.环境 三.相关概念 3.1 protocol buffer介绍 3.2 nanopb(支持C语言) 3.3 proto文件 四.proto基本语法 4.1 proto文件的定义 4 ...
- 【Azure 应用服务】调用Azure REST API来获取 App Service的访问限制信息(Access Restrictions)以及修改
问题描述 昨天的博文中(https://www.cnblogs.com/lulight/p/17099179.html)介绍了使用Python SDK 来获取App Service的访问限制信息,那么 ...
- 【Azure Redis 缓存】Redis性能指标之Server Load
Server Load描述 在Redis的官方介绍中,Server Load指标是Redis 服务器忙于处理消息并且非空闲等待消息的周期百分比. 如果此计数器达到 100,则意味着 Redis 服务器 ...
- 【Azure 应用服务】Storage Queue触发Azure Function时报错 The input is not a valid Base-64 string
问题描述 创建一个PowerShell脚本的Azure Function,触发方式为 Storage Queue.但执行函数结果一直失败 (Failed). 错误消息为: Executed 'Func ...