Insert

如何使用 SQL 將數據插入到 Snowflake 表的 ARRAY 列中?

  • January 24, 2022

我很難找到有關如何在 Snowflake 表上使用 SQL 將數據插入 ARRAY 列類型的文件。

雪花文件:https ://docs.snowflake.net/manuals/sql-reference/data-types-semistructured.html#array

// example table
CREATE OR REPLACE TABLE array_test_table (
 id number,
 ids array
);

// This does not work
INSERT INTO array_test_table (id, ids) 
VALUES (1, '[1,2,3]' );

我嘗試使用類似此處描述的 postgres 語法:https ://stackoverflow.com/questions/33335338/inserting-array-values

我最初在這裡問了這個問題:雪花社區

看起來您需要應用一個函式來解析數組。截至 2018 年 9 月 13 日,值列表中不允許使用函式,請參閱Is there a literal syntax for arrays

解決此問題的一種方法是結合 INSERT INTO 和 SELECT 語句。例子:

CREATE OR REPLACE TABLE array_test_table (
 id number,
 ids array
);

INSERT INTO array_test_table (id, ids) 
SELECT $1, PARSE_JSON($2)
 FROM VALUES (1, '[1,2,3]' );

另一種選擇是使用 ARRAY_CONSTRUCT(1,2,3) 而不是解析 JSON。

INSERT INTO array_test_table (id, ids) 
SELECT (1, ARRAY_CONSTRUCT(1,2,3) );

https://docs.snowflake.com/en/sql-reference/functions/array_construct.html

引用自:https://dba.stackexchange.com/questions/217524