21

私はテーブルの列にあり、そのタイプは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[]型として変換する方法は?

4

1 に答える 1

41

にキャスト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 固有::varchar[]または標準を使用できますCAST(colname AS varchar[])が、配列はデータベース実装全体で一貫していないため、標準構文を使用する利点はあまりありません。

于 2013-05-28T08:21:32.953 に答える