CREATE OR REPLACE FUNCTION study.test_collection_param(
INOUT refcur1 refcursor,
INOUT refcur2 refcursor,
in_coll_n int[],
in_coll_s varchar(50)[] default '{}'::varchar(50)[]
)
RETURNS record
LANGUAGE plpgsql
STABLE SECURITY DEFINER
AS $function$
begin
open refcur1 for
select d.id_dict,
sum(1) as cnt,
sum(val) as val
from study.dat d
where d.id_dict = ANY(in_coll_n)
group by d.id_dict;
open refcur2 for
select unnest(in_coll_s) as COL_NAME;
end;
$function$
commit;
begin;
select study.test_collection_param('rc1','rc2',ARRAY[1,2,3],ARRAY['x1','y2',' ','z3']);
FETCH ALL IN rc1;
1 17 916
2 17 921
3 17 905
FETCH ALL IN rc2;
COL_NAME
x1
y2
z3
Комментариев нет:
Отправить комментарий