web-dev-qa-db-ja.com

PostgreSQLの関数に配列またはレコードを渡しますか?

配列、レコード、場合によってはレコードの配列をパラメーターとしてPostgreSQLの関数に渡すタスクがあります。

15
Worker

Postgresは arrays および composite types を非常に柔軟に処理します。これは、あなたがやろうとしている種類のことかもしれません:

create type my_type as (val1 integer, val2 integer);
create function my_function(arr my_type[]) returns text language plpgsql as $$
begin
  return arr::text;
end;$$;
select my_function(array[row(1,2),row(3,4)]::my_type[]);
 | my_function | 
 | :------------- | {"(1,2)"、 "(3,4)"} | 

dbfiddle ---(ここ