21

我在表列中,类型是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[]类型?

4

1 回答 1

41

投射到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[])……尽管由于数组在数据库实现中不一致,使用标准语法不会有太大的优势。

于 2013-05-28T08:21:32.953 回答