web-dev-qa-db-fra.com

Types de réseau de conversion

J'ai dans la colonne de table, quel type est CHARACTER VARYING[] (C'est-à-dire une matrice)

J'ai besoin de concaténate existant des rangées avec un autre tableau

Ceci est mon code:

UPDATE my_table SET
col = array_cat(col, ARRAY['5','6','7'])   

erreur renvoyée: function array_cat(character varying[], text[]) does not exist

L'erreur de la raison est que ce type de tableau ne correspond pas correctement?

Question: Comment convertir ce tableau ARRAY['5','6','7'] Comme CHARACTER VARYING[] Type?

16
Oto Shavadze

Cast to varchar[]:

 > SELECT ARRAY['5','6','7']::varchar[], pg_typeof( ARRAY['5','6','7']::varchar[] );

 SELECT ARRAY['5','6','7']::varchar[], pg_typeof( ARRAY['5','6','7']::varchar[] );
  array  |      pg_typeof      
---------+---------------------
 {5,6,7} | character varying[]

Vous pouvez utiliser le fichier postgreSQL spécifique ::varchar[] Ou la standard CAST(colname AS varchar[])... Bien que les matrices ne soient pas cohérentes à travers la mise en œuvre de la base de données, il n'y aura pas beaucoup d'avantage à l'utilisation de la syntaxe standard.

35
Craig Ringer