2013-05-28 38 views
10

tôi có trong cột bảng, loại là CHARACTER VARYING[] (có nghĩa là mảng)chuyển đổi loại mảng

Tôi cần concatenate tồn tại hàng whith mảng khác

Đây là mã của tôi:

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

trở lỗi: function array_cat(character varying[], text[]) does not exist

Lỗi lý do là các loại mảng không khớp với đúng?

Câu hỏi: cách chuyển đổi mảng này ARRAY['5','6','7'] thành loại CHARACTER VARYING[]?

Trả lời

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

Bạn có thể sử dụng PostgreSQL cụ ::varchar[] hoặc tiêu chuẩn CAST(colname AS varchar[]) ... dù như mảng là không đồng nhất giữa việc triển khai cơ sở dữ liệu sẽ không có nhiều lợi thế để sử dụng cú pháp chuẩn .

+1

... nó đơn giản như vậy! Cảm ơn! –

Các vấn đề liên quan