Преобразования типов массивов



У меня есть в таблице столбец, тип которого 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[]?

604   1  

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

    Ничего не найдено.