2013-05-28 37 views
10

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

回答

25

演员到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[]) ...虽然作为阵列不能跨数据库实现一致不会有太大的优势,使用标准的语法。

+1

...就这么简单!谢谢! –