Преобразования типов массивов
У меня есть в таблице столбец, тип которого 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 specific
::varchar[]или стандартныйCAST(colname AS varchar[])... хотя, поскольку массивы не согласованы между реализациями баз данных, не будет большого преимущества в использовании стандартного синтаксиса.
Comments