转换数组类型
Posted
技术标签:
【中文标题】转换数组类型【英文标题】:Conversion array types 【发布时间】:2013-05-28 07:58:17 【问题描述】:我在表列中,类型为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】:投射到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[])
...尽管由于数据库实现中的数组不一致,因此使用标准语法不会有太多优势。
【讨论】:
以上是关于转换数组类型的主要内容,如果未能解决你的问题,请参考以下文章