转换数组类型

时间:2013-05-28 07:58:17

标签: postgresql postgresql-9.2

我在表列中,类型为CHARACTER VARYING[](即数组)

我需要连接其他数组的现有行

这是我的代码:

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

返回错误:function array_cat(character varying[], text[]) does not exist

原因错误是数组类型不匹配吗?

问题:如何将此数组ARRAY['5','6','7']转换为CHARACTER VARYING[]类型?

1 个答案:

答案 0 :(得分:32)

转换为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[]

您可以使用PostgreSQL特定的::varchar[]或标准的CAST(colname AS varchar[]) ......但由于数组在数据库实现中不一致,因此使用标准语法不会有太大的优势。