2013-05-28 25 views
10

BenDönüşüm dizisi tipleri

Ben concatenate diğer dizide

nereye satırları var gerek (yani dizidir) tip CHARACTER VARYING[] olan tablo sütununda var Bu benim kodudur:

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

döndü hata: function array_cat(character varying[], text[]) does not exist

Nedeni hatası, dizi türleri sağa uymuyor mu?

Soru: Bu dizi ARRAY['5','6','7'] dizgisini CHARACTER VARYING[] türüne nasıl dönüştürülür?

cevap

25

Cast varchar[] için:

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

Belirli PostgreSQL'i kullanabilirsiniz diziler veritabanı uygulamaları tutarlı değildir gibi ::varchar[] veya standart CAST(colname AS varchar[]) ... standart sözdizimi kullanılarak çok avantaj olmayacak olsa .

+1

... bu kadar basit! Teşekkürler! –