예
이 예에서는 PARSE_XML 을 호출하여 XML 형식의 데이터를 OBJECT에 로딩한 경우 이 함수를 사용하는 방법을 보여줍니다.
테이블을 만들고 데이터를 삽입합니다.
CREATE OR REPLACE TABLE xml_02 (x OBJECT);
INSERT INTO xml_02 (x)
SELECT PARSE_XML('<note> <body>Sample XML</body> </note>');
TO_XML 및 TO_VARCHAR 함수를 호출합니다.
SELECT x, TO_VARCHAR(x), TO_XML(x) FROM xml_02;
+---------------------------+--------------------------------------+--------------------------------------+
| X | TO_VARCHAR(X) | TO_XML(X) |
|---------------------------+--------------------------------------+--------------------------------------|
| <note> | <note><body>Sample XML</body></note> | <note><body>Sample XML</body></note> |
| <body>Sample XML</body> | | |
| </note> | | |
+---------------------------+--------------------------------------+--------------------------------------+
아래 예에서 볼 수 있듯이, XML 형식의 데이터로 시작되지 않은 데이터로 TO_XML 함수를 호출할 수도 있습니다.
다음은 간단한 OBJECT 를 만든 다음, 그에 상응하는 XML 을 생성하는 예입니다. XML 출력은 키-값 페어에 있는 값의 데이터 타입뿐 아니라, 전체 값(OBJECT)의 데이터 타입에 대한 정보를 포함합니다.
CREATE OR REPLACE TABLE xml_03 (object_col_1 OBJECT);
INSERT INTO xml_03 (object_col_1)
SELECT OBJECT_CONSTRUCT('key1', 'value1', 'key2', 'value2');
SELECT object_col_1, TO_XML(object_col_1)
FROM xml_03;
+---------------------+-------------------------------------------------------------------------------------------------------------------+
| OBJECT_COL_1 | TO_XML(OBJECT_COL_1) |
|---------------------+-------------------------------------------------------------------------------------------------------------------|
| { | <SnowflakeData type="OBJECT"><key1 type="VARCHAR">value1</key1><key2 type="VARCHAR">value2</key2></SnowflakeData> |
| "key1": "value1", | |
| "key2": "value2" | |
| } | |
+---------------------+-------------------------------------------------------------------------------------------------------------------+
다음은 간단한 ARRAY 를 만든 다음, 그에 상응하는 XML 을 생성하는 예입니다. 출력은 XML 배열 요소의 데이터 타입뿐 아니라, 전체 값(ARRAY)의 데이터 타입에 대한 정보를 포함합니다.
CREATE OR REPLACE TABLE xml_04 (array_col_1 ARRAY);
INSERT INTO xml_04 (array_col_1)
SELECT ARRAY_CONSTRUCT('v1', 'v2');
SELECT array_col_1, TO_XML(array_col_1)
FROM xml_04;
+-------------+----------------------------------------------------------------------------------------------+
| ARRAY_COL_1 | TO_XML(ARRAY_COL_1) |
|-------------+----------------------------------------------------------------------------------------------|
| [ | <SnowflakeData type="ARRAY"><e type="VARCHAR">v1</e><e type="VARCHAR">v2</e></SnowflakeData> |
| "v1", | |
| "v2" | |
| ] | |
+-------------+----------------------------------------------------------------------------------------------+
다음 예에서는 JSON 형식의 데이터를 삽입한 다음 그에 상응하는 XML 을 생성합니다.
CREATE OR REPLACE TABLE xml_05 (json_col_1 VARIANT);
INSERT INTO xml_05 (json_col_1)
SELECT PARSE_JSON(' { "key1": ["a1", "a2"] } ');
SELECT json_col_1,
TO_JSON(json_col_1),
TO_XML(json_col_1)
FROM xml_05;
+-------------+----------------------+-------------------------------------------------------------------------------------------------------------------------+
| JSON_COL_1 | TO_JSON(JSON_COL_1) | TO_XML(JSON_COL_1) |
|-------------+----------------------+-------------------------------------------------------------------------------------------------------------------------|
| { | {"key1":["a1","a2"]} | <SnowflakeData type="OBJECT"><key1 type="ARRAY"><e type="VARCHAR">a1</e><e type="VARCHAR">a2</e></key1></SnowflakeData> |
| "key1": [ | | |
| "a1", | | |
| "a2" | | |
| ] | | |
| } | | |
+-------------+----------------------+-------------------------------------------------------------------------------------------------------------------------+