网站建设的数据库设计图,淘宝网站开发的多少钱,东莞搭建网站要多少钱,施工企业领导带班记录KingbaseES 原生XML系列二--XML数据操作函数(DELETEXML,APPENDCHILDXML,INSERTCHILDXML,INSERTCHILDXMLAFTER,INSERTCHILDXMLBEFORE,INSERTXMLAFTER,INSERTXMLBEFORE,UPDATEXML) XML的简单使其易于在任何应用程序中读写数据#xff0c;这使XML很快成为数据交换的一种公共语言。… KingbaseES 原生XML系列二--XML数据操作函数(DELETEXML,APPENDCHILDXML,INSERTCHILDXML,INSERTCHILDXMLAFTER,INSERTCHILDXMLBEFORE,INSERTXMLAFTER,INSERTXMLBEFORE,UPDATEXML) 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 , kesaaa/kes , kessqlsql001/sqlracrac001/rac/kes , kesversionv8r3001/versionversionv8r6001/version/kes);
INSERT INTO xmldata values(2, lisi , kesbbb/kes , kessqlsql002/sqlracrac002/rac/kes , kesversionv8r3002/versionversionv8r6002/version/kes);
INSERT INTO xmldata values(3, wangwu , kesccc/kes , kessqlsql003/sqlracrac003/rac/kes , kesversionv8r3003/versionversionv8r6003/version/kes); xml函数列表 DELETEXMLAPPENDCHILDXMLINSERTCHILDXMLINSERTCHILDXMLAFTERINSERTCHILDXMLBEFOREINSERTXMLAFTERINSERTXMLBEFOREUPDATEXML json函数简介 DELETEXML 功能 函数deletexml会删除xml_instance实例中与xpath表达式匹配的节点。 每次删除指定的一层节点若一层含有多个节点则该层所有节点都将被删除。若删除节点后父节点值为空则父节点只显示结尾部分否则显示完整父节点及父节点的其他值。 用法 deletexml(xml_instance xml, xpath text)
deletexml(xml_instance xml, xpath text, namespace _text) 示例 test# select deletexml(xmlvarchar , /kes) , xmlvarchar from xmldata ;deletexml | xmlvarchar
---------------------------| kesaaa/kes| kesbbb/kes| kesccc/kes
(3 行记录)test# select deletexml(xmldata , /kes/sql) , xmldata from xmldata ;deletexml | xmldata
--------------------------------------------------------------------kes | kessqlsql001/sqlracrac001/rac/kesracrac001/rac| /kes | kes | kessqlsql002/sqlracrac002/rac/kesracrac002/rac| /kes | kes | kessqlsql003/sqlracrac003/rac/kesracrac003/rac| /kes |
(3 行记录)test# select deletexml(xmlarray , /kes/version) , xmlarray from xmldata ;deletexml | xmlarray
----------------------------------------------------------------------------kes/ | kesversionv8r3001/versionversionv8r6001/version/keskes/ | kesversionv8r3002/versionversionv8r6002/version/keskes/ | kesversionv8r3003/versionversionv8r6003/version/kes
(3 行记录) APPENDCHILDXML 功能 函数appendchildxml将value_expr提供的值作为xpath节点的子节点追加到xml_instance中。成功则返回追加后的xml_instance数据失败则返回ERROR。 用法 appendchildxml(xml_instance xml, xpath text , value_expr xml) 示例 test# select appendchildxml(xmldata , /kes ,xmlvarchar) , xmldata , xmlvarchar from xmldata ;appendchildxml | xmldata | xmlvarchar
------------------------------------------------------------------------------------kes | kessqlsql001/sqlracrac001/rac/kes | kesaaa/kessqlsql001/sql| | racrac001/rac| | kesaaa/kes | | /kes | | kes | kessqlsql002/sqlracrac002/rac/kes | kesbbb/kessqlsql002/sql| | racrac002/rac| | kesbbb/kes | | /kes | | kes | kessqlsql003/sqlracrac003/rac/kes | kesccc/kessqlsql003/sql| | racrac003/rac| | kesccc/kes | | /kes | |
(3 行记录) INSERTCHILDXML 功能 函数insertchildxml将value_expr提供的值作为xpath指定节点的子节点插入到xml_instance中。成功则返回插入后的xml_instance数据失败则返回ERROR。 用法 insertchildxml(xml_instance xml, xpath text, child_expr text , value_expr xml)
insertchildxml(xml_instance xml, xpath text , child_expr text ,value_expr xml, namespace _text) 示例 test# select insertchildxml(xmldata , /kes , cluster , clusternodes/cluster) ,xmldata from xmldata ;insertchildxml | xmldata
---------------------------------------------------------------------------kes | kessqlsql001/sqlracrac001/rac/kessqlsql001/sql | racrac001/rac | clusternodes/cluster| /kes | kes | kessqlsql002/sqlracrac002/rac/kessqlsql002/sql | racrac002/rac | clusternodes/cluster| /kes | kes | kessqlsql003/sqlracrac003/rac/kessqlsql003/sql | racrac003/rac | clusternodes/cluster| /kes |
(3 行记录)-- 数组数据插入
test# select insertchildxml(XMLarray , /kes , cluster , clusternodes/cluster) , XMLarray from xmldata ;insertchildxml | XMLarray
-----------------------------------------------------------------------------------------------kes | kesversionv8r3001/versionversionv8r6001/version/kesversionv8r3001/version| versionv8r6001/version| clusternodes/cluster | /kes | kes | kesversionv8r3002/versionversionv8r6002/version/kesversionv8r3002/version| versionv8r6002/version| clusternodes/cluster | /kes | kes | kesversionv8r3003/versionversionv8r6003/version/kesversionv8r3003/version| versionv8r6003/version| clusternodes/cluster | /kes |
(3 行记录) INSERTCHILDXMLAFTER 功能 函数insertchildxmlafter将value_expr提供的一个或多个集合元素作为xpath指定的目标父元素的子元素插入到child_expr指定的现有集合元素之后。成功则返回插入后的xml_instance数据失败则返回ERROR。 用法 insertchildxmlafter(xml_instance xml, xpath text, child_expr text , value_expr xml)
insertchildxmlafter(xml_instance xml, xpath text , child_expr text ,value_expr xml,namespace _text) 示例 test# select insertchildxmlafter(xmldata , /kes,sql,clusternodes/cluster) ,xmldata from xmldata ;insertchildxmlafter | xmldata
---------------------------------------------------------------------------kes | kessqlsql001/sqlracrac001/rac/kessqlsql001/sql | clusternodes/cluster| racrac001/rac | /kes | kes | kessqlsql002/sqlracrac002/rac/kessqlsql002/sql | clusternodes/cluster| racrac002/rac | /kes | kes | kessqlsql003/sqlracrac003/rac/kessqlsql003/sql | clusternodes/cluster| racrac003/rac | /kes |
(3 行记录)-- 数组数据插入
test# select insertchildxmlafter(xmlarray ,/kes,version[1] ,clusternodes/cluster) ,xmlarray from xmldata ;insertchildxmlafter | xmlarray
-----------------------------------------------------------------------------------------------kes | kesversionv8r3001/versionversionv8r6001/version/kesversionv8r3001/version| clusternodes/cluster | versionv8r6001/version| /kes | kes | kesversionv8r3002/versionversionv8r6002/version/kesversionv8r3002/version| clusternodes/cluster | versionv8r6002/version| /kes | kes | kesversionv8r3003/versionversionv8r6003/version/kesversionv8r3003/version| clusternodes/cluster | versionv8r6003/version| /kes |
(3 行记录) INSERTCHILDXMLBEFORE 功能 函数insertchildxmlbefore将value_expr提供的一个或多个集合元素作为xpath指定的目标父元素的子元素插入到child_expr指定的现有集合元素之前。成功则返回插入后的xml_instance数据失败则返回ERROR。 用法 insertchildxmlbefore(xml_instance xml, xpath text, child_expr text , value_expr xml)
insertchildxmlbefore(xml_instance xml, xpath text , child_expr text , value_expr xml,namespace _text) 示例 test# select insertchildxmlbefore(xmldata , /kes,sql,clusternodes/cluster) ,xmldata from xmldata ;insertchildxmlbefore | xmldata
---------------------------------------------------------------------------kes | kessqlsql001/sqlracrac001/rac/kesclusternodes/cluster| sqlsql001/sql | racrac001/rac | /kes | kes | kessqlsql002/sqlracrac002/rac/kesclusternodes/cluster| sqlsql002/sql | racrac002/rac | /kes | kes | kessqlsql003/sqlracrac003/rac/kesclusternodes/cluster| sqlsql003/sql | racrac003/rac | /kes |
(3 行记录)-- 数组数据插入
test# select insertchildxmlbefore(xmlarray ,/kes,version[1] ,clusternodes/cluster) ,xmlarray from xmldata ;insertchildxmlbefore | xmlarray
-----------------------------------------------------------------------------------------------kes | kesversionv8r3001/versionversionv8r6001/version/kesclusternodes/cluster | versionv8r3001/version| versionv8r6001/version| /kes | kes | kesversionv8r3002/versionversionv8r6002/version/kesclusternodes/cluster | versionv8r3002/version| versionv8r6002/version| /kes | kes | kesversionv8r3003/versionversionv8r6003/version/kesclusternodes/cluster | versionv8r3003/version| versionv8r6003/version| /kes |
(3 行记录) INSERTXMLAFTER 功能 函数insertxmlafter将value_expr提供的值插入到xpath指定的节点之后。成功则返回插入后的xml_instance数据失败则返回ERROR。 用法 insertxmlafter(xml_instance xml, xpath text , value_expr xml)
insertxmlafter(xml_instance xml, xpath text , value_expr xml,namespace _text) 示例 test# select insertxmlafter(xmldata ,/kes/sql ,clusternodes/cluster) ,xmldata from xmldata ;insertxmlafter | xmldata
---------------------------------------------------------------------------kes | kessqlsql001/sqlracrac001/rac/kessqlsql001/sql | clusternodes/cluster| racrac001/rac | /kes | kes | kessqlsql002/sqlracrac002/rac/kessqlsql002/sql | clusternodes/cluster| racrac002/rac | /kes | kes | kessqlsql003/sqlracrac003/rac/kessqlsql003/sql | clusternodes/cluster| racrac003/rac | /kes |
(3 行记录)-- 数组数据插入
test# select insertxmlafter(xmlarray ,/kes/version[1] ,clusternodes/cluster) , xmlarray from xmldata ;insertxmlafter | xmlarray
-----------------------------------------------------------------------------------------------kes | kesversionv8r3001/versionversionv8r6001/version/kesversionv8r3001/version| clusternodes/cluster | versionv8r6001/version| /kes | kes | kesversionv8r3002/versionversionv8r6002/version/kesversionv8r3002/version| clusternodes/cluster | versionv8r6002/version| /kes | kes | kesversionv8r3003/versionversionv8r6003/version/kesversionv8r3003/version| clusternodes/cluster | versionv8r6003/version| /kes |
(3 行记录) INSERTXMLBEFORE 功能 函数insertxmlbefore将value_expr提供的值插入到xpath指定的节点之前。成功则返回插入后的xml_instance数据失败则返回ERROR。 用法 insertxmlbefore(xml_instance xml, xpath text , value_expr xml)
insertxmlbefore(xml_instance xml, xpath text , value_expr xml,namespace _text) 示例 test# select insertxmlbefore(xmldata ,/kes/sql ,clusternodes/cluster) ,xmldata from xmldata ;insertxmlbefore | xmldata
---------------------------------------------------------------------------kes | kessqlsql001/sqlracrac001/rac/kesclusternodes/cluster| sqlsql001/sql | racrac001/rac | /kes | kes | kessqlsql002/sqlracrac002/rac/kesclusternodes/cluster| sqlsql002/sql | racrac002/rac | /kes | kes | kessqlsql003/sqlracrac003/rac/kesclusternodes/cluster| sqlsql003/sql | racrac003/rac | /kes |
(3 行记录)-- 数组数据插入
test# select insertxmlbefore(xmlarray ,/kes/version[1] ,clusternodes/cluster) , xmlarray from xmldata ;insertxmlbefore | xmlarray
-----------------------------------------------------------------------------------------------kes | kesversionv8r3001/versionversionv8r6001/version/kesclusternodes/cluster | versionv8r3001/version| versionv8r6001/version| /kes | kes | kesversionv8r3002/versionversionv8r6002/version/kesclusternodes/cluster | versionv8r3002/version| versionv8r6002/version| /kes | kes | kesversionv8r3003/versionversionv8r6003/version/kesclusternodes/cluster | versionv8r3003/version| versionv8r6003/version| /kes |
(3 行记录) UPDATEXML 功能 函数updatexml将xml_instance实例中xpath指定的节点内容替换为value_expr提供的值成功则返回更新后的xml_instance实例失败则返回ERROR。 用法 updatexml(xml_instance xml, xpath text, value_expr xml)
updatexml(xml_instance xml, xpath text, value_expr text)
updatexml(xml_instance xml, xpath text, value_expr text, namespace text) 示例 test# select updatexml(xmlvarchar ,/kes ,kesxxx/kes ) , xmlvarchar from xmldata ;updatexml | xmlvarchar
--------------------------------kesxxx/kes | kesaaa/keskesxxx/kes | kesbbb/keskesxxx/kes | kesccc/kes
(3 行记录)