2013-05-28 13 views
10

Ich habe in Tabellenspalte, die Typ CHARACTER VARYING[] ist (das Array)Conversion Array-Typen

Ich brauche concatenate existierte Reihen whith andere Array

Dies ist mein Code:

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

zurück Fehler: function array_cat(character varying[], text[]) does not exist

Grund Fehler ist, dass Array-Typen stimmt nicht richtig?

Frage: Wie konvertiert man dieses Array ARRAY['5','6','7'] als CHARACTER VARYING[] Typ?

Antwort

25

Cast 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[] 

Sie können die PostgreSQL spezifischen ::varchar[] oder die Standard-CAST(colname AS varchar[]) verwenden ... obwohl, wie Arrays über Datenbank-Implementierungen nicht konsistent sind, wird es nicht viel Vorteil sein, die Standardsyntax zu verwenden .

+1

... so einfach ist das! Vielen Dank! –