web-dev-qa-db-fra.com

Comment pouvez-vous insérer des données dans une colonne Array sur une table de flocon de neige à l'aide de SQL?

Je trouve difficilement la documentation sur la manière d'insérer des données dans un type de colonne de matrice à l'aide de SQL sur une table de flocon de neige.

Documentation de flocon de neige: https://docs.snowflake.net/manuals/sql-reference/data-types-semistrecturé.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]' );

J'ai essayé d'utiliser l'utilisation de la syntaxe de Postgres comme des celles décrites ici: https://stackoverflow.com/questions/333335338/inserting-array-values

J'ai initialement posé cette question ici: communauté de flocons de neige

1
ajputnam

On dirait que vous devez appliquer une fonction pour analyser la matrice. À partir de 10/13/2018 Les fonctions ne sont pas autorisées dans les listes de valeurs, voir existe-t-il une syntaxe littérale pour les tableaux

Une solution consiste à combiner insérer et sélectionner une instruction. Exemple:

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]' );
1
ajputnam