- 类别:
转换函数、 半结构化和结构化数据函数 (类型转换)
TO_XML¶
将 VARIANT 转换为包含该值的 XML 表示形式的 VARCHAR。如果输入为 NULL,则结果也是 NULL。
语法¶
实参¶
expression计算结果为 VARIANT 或可以 转换 为 VARIANT 的表达式。
返回¶
返回值的数据类型是 VARCHAR。
使用说明¶
此函数的常见用途包括:
生成一个包含 XML 格式的值的字符串,该值与最初插入的 XML 格式的值匹配。
将半结构化值(不一定最初要格式化为 XML)转换为 XML 格式的值。例如,可使用 TO_XML 为最初格式化为 JSON 的值生成兼容 XML 的表示形式。
如果输入
expression的计算结果不是 VARIANT,则 Snowflake 会隐式将表达式的结果 转换 为 VARIANT。由于所有其他 Snowflake 数据类型都可以转换为 VARIANT,这意味着可以将任何数据类型的值传递给 TO_XML 并转换为 XML 格式化的字符串。(GEOGRAPHY 数据类型为部分异常;要使用 GEOGRAPHY 类型的值调用 TO_XML,必须将该 GEOGRAPHY 值显式转换为 VARIANT。)如果值最初不是 XML 格式,则 Snowflake 会生成兼容 XML 的标签。这些标签可以使用
type属性来指定标签内容的 Snowflake 数据类型。以下是 Snowflake 生成的标签的示例。最外层的标签对类似于以下内容:
在标签的
type属性中指定的数据类型可能会有所不同。对于 OBJECT,每个键值对的标签都基于键。例如:
对于 ARRAY,数组的每个元素都位于类似以下内容的标签对中:
下面是包含两个键值对的简单 OBJECT 的 XML 的完整示例:
下面是包含两个 VARCHAR 值的简单 ARRAY 的 XML 的完整示例:
示例¶
此示例演示在调用 PARSE_XML 将 XML 格式化的数据加载到 OBJECT 时如何使用此函数。
创建表并插入数据:
调用 TO_XML 和 TO_VARCHAR 函数:
您还可以使用最初不是 XML 格式的数据调用 TO_XML 函数,如以下示例所示。
以下示例创建一个简单 OBJECT,然后生成相应的 XML。XML 输出包含有关键值对中值的数据类型的信息,以及整个值 (OBJECT) 的数据类型。
以下示例创建一个简单 ARRAY,然后生成相应的 XML。XML 输出包含有关数组元素的数据类型的信息,以及整个值 (ARRAY) 的数据类型。
以下示例插入 JSON 格式的数据,然后生成相应的 XML。