我在表列中,类型为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[]
类型?
答案 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[])
......但由于数组在数据库实现中不一致,因此使用标准语法不会有太大的优势。