Je ne parviens pas à ajouter des données aux tables contenant une colonne de tableau à l'aide de l'insertion dans des instructions; le type de données est array <varchar (200)>
Avec jodbc, je ne parviens pas à insérer des valeurs dans une colonne de tableau avec des valeurs telles que:
INSERT INTO demo.table (codes) VALUES (['a','b']);
ne reconnaît pas les signes "[" ou "{".
Utiliser la fonction array comme ...
INSERT INTO demo.table (codes) VALUES (array('a','b'));
J'obtiens l'erreur suivante en utilisant la fonction array:
Unable to create temp file for insert values Expression of type TOK_FUNCTION not supported in insert/values
J'ai essayé la solution de contournement ...
INSERT into demo.table (codes) select array('a','b');
sans succès:
Failed to recognize predicate '<EOF>'. Failed rule: 'regularBody' in statement
Comment puis-je charger des données de tableau dans des colonnes à l'aide de jdbc?
Ma table a deux colonnes: a STRING, b ARRAY<STRING>
.
Lorsque j'utilise la méthode de @Kishore Kumar Suthar, j'ai compris ceci:
FAILED: ParseException line 1:33 cannot recognize input near '(' 'a' ',' in statement
Mais je trouve un autre moyen, et cela fonctionne pour moi:
INSERT INTO test.table
SELECT "test1", ARRAY("123", "456", "789")
FROM dummy LIMIT 1;
dummy
est une table comportant au moins une ligne.
crée une table dummy
qui a au moins one row
.
INSERT INTO demo.table (codes) VALUES (array('a','b')) from dummy limit 1;
Hive> select codes demo.table;
OK
["a","b"]
Time taken: 0.088 seconds, Fetched: 1 row(s)
Supposons que j'ai un employé de table contenant les champsIDet Nom .
Je crée une autre table employee_address avec les champsIDet Adresse . L'adresse est une donnée complexe de type array (string) .
Voici comment je peux y insérer des valeurs:
insert into table employee_address select 1, 'Mark', 'Evans', ARRAY('NewYork','11th
avenue') from employee limit 1;
Ici, l'employé de la table agit simplement comme une table factice. Aucune donnée n'en est copiée. Son schéma peut ne pas correspondre à employee_address. Ça n'a pas d'importance.