2013-05-28 8 views
10

mam w kolumnie tabeli, który typ jest CHARACTER VARYING[] (czyli tablica)konwersji typów tablicowych

muszę concatenate istniał wiersze pokojowe drugiej tablicy

To jest mój kod:

UPDATE my_table SET 
col = array_cat(col, ARRAY['5','6','7']) 

powrócił błąd: function array_cat(character varying[], text[]) does not exist

Przyczyna błędu polega na tym, że typy tablic nie są zgodne z prawdą?

Pytanie: Jak przekonwertować tę tablicę ARRAY['5','6','7'] jako typ CHARACTER VARYING[]?

Odpowiedz

25

Odlewanie do 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[] 

Można użyć PostgreSQL specyficzne ::varchar[] lub średnia CAST(colname AS varchar[]) ... choć jak tablice nie są spójne we wdrożeniach baz danych tam nie będzie wiele korzyści stosując standardową składnię .

+1

... to takie proste! Dzięki! –

Powiązane problemy