华为云云数据库GaussDBXMLTYPE类型_云淘科技

XMLTYPE数据类型可以被用来存储XMLTYPE数据。目前,它的内部格式中存储数据是按字符串方式存储的,它比直接在一个TEXT域中存储XML数据的优势在于:XML类型数据支持基于LIBXML2提供的标准XML操作函数及XML规范性的检查。

XMLTYPE类型可以存储格式良好的遵循XML标准定义的“文档”。

XML解析器把XML文档转换为XML DOM对象。DOM(DOCUMENT OBJECT MODEL 文档对象模型)定义了访问和操作文档的标准方法。XML DOM(XML DOCUMENT OBJECT MODEL)定义了访问和操作XML文档的标准方法。XML DOM把XML文档作为树结构来查看。所有元素可以通过DOM树来访问。可以修改或删除它们的内容,并创建新的元素。元素,它们的文本,以及它们的属性,都被认为是节点。最大为1GB。

示例:

gaussdb=# CREATE TABLE xmltypetest(id int, data xmltype);
gaussdb=# INSERT INTO xmltypetest VALUES (1, '');
gaussdb=# INSERT INTO xmltypetest VALUES (2, '');
gaussdb=# SELECT * FROM xmltypetest ORDER BY 1;
 id | data
----+-------
  1 | 
  2 | 
(2 rows)

XMLTYPE类型不支持如下操作:

逻辑表达式and、or、not。
作为非XMLTYPE操作函数的系统函数的入参。
作为分布键、分区键、二级分区键、主键、唯一约束。
XMLTYPE相关的隐式类型转换,包括字符串和XMLTYPE类型之间的隐式转换。
数组表达式、行表达式、子查询表达式、TABLE OF和TABLE OF INDEX。
使用XMLTYPE数据格式列做为普通索引、unique索引、global索引、local索引、部分索引。
比较表达式>、=、<=、=、、!=、^=、between and、is distinct from、is not distinct from、。
条件表达式decode、nullif、greatest、least。
作为distinct/group by/order by 参数。
聚合函数sum、max、min、avg、list_agg、corr、covar_pop、cover_samp、stddev、stddev_pop、stddev_samp、var_pop、var_samp、variance、bit_and、bit_or、bool_and、bool_or、every、regr_avgx、regr_avgy、regr_count、regr_intercept、regr_r2、regr_slope、regr_sxx、regr_sxy、regr_syy、rank、spread。
不支持ODBC相关绑定传参接口。

XMLTYPE类型支持如下操作:

物理备份恢复。
比较表达式is null、is not null。
条件表达式case、coalesce。
全局临时表和本地临时表。
强制类型转换。
表达式索引。
XMLTYPE类型的输入值需要符合XML格式标准。
支持gs_dump导出和gs_restore导入操作。
并行查询,支持astore和ustore存储引擎。
作为自定义函数的入参,出参,自定义变量,返回值。
作为存储过程的入参,出参,自定义变量,返回值。支持自治事务的存储过程。
字符处理函数quote_literal(string text)(需显式转换为字符类型)、quote_nullable(string text)(需显式转换为字符类型)。
聚集函数count、array_agg、checksum(需显式转换为字符类型)、string_agg(需显式转换为字符类型)。
自定义类型中复合类型涉及XMLTYPE type时的增删改查,且与普通表中的XMLTYPE字段一样,需要按照XMLTYPE的语法插入和修改。
支持对该字段进行select,update,insert,delete,使用SQL语法输入XMLTYPE值。

可以创建名称为xmltype的schema,schema下用户可以创建函数,但是不能通过schema.func()这种方式调用schema下定义的函数。

父主题: 数据类型

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家