PostgreSQL 함수의 매개 변수/인수로 (무제한의) 행 배열 (즉, 상수 테이블)을 전달할 수있는 방법은 무엇입니까? 여기 PostgreSQL 함수에 여러 행을 전달하는 방법은 무엇입니까?
는 생각 :CREATE TYPE foo AS (
x bigint,
y smallint,
z varchar(64)
);
CREATE OR REPLACE FUNCTION bar(bigint, foo[]) RETURNS TABLE(a bigint, x bigint, y smallint, z varchar(64)) AS
$$
SELECT $1, x, y, z FROM unnest($2);
$$
LANGUAGE SQL;
아래 함수 호출 작동하지만 짧은 만들 수있는 방법은 무엇입니까?
SELECT * FROM bar(1, ARRAY[(1,2,'body1'),(2,1,'body2')]::foo[]);
예를 들어, 우리는 ::foo[]
캐스트를 제거 할 수 있지만, 우리가 그것을 생략 할 수 있도록 일을 다시 작성하는 방법은 무엇입니까?
우리는 가변 인수를 사용해야합니까?