我定义了一个函数:
create or replace function get_matches(_mia match_input[])
returns setof contact_index
我要创建此函数的重载版本,它将接受一个匹配的输入对象:
create or replace function get_matches(_mi match_input)
returns setof contact_index
as $func$
begin
select get_matches(array[_mi]);
end
$func$
language plpgsql strict;
它编译得很好,但运行时会出现以下错误:
ERROR: query has no destination for result data
最佳答案
在PL/pgSQL函数中,需要使用return query
create or replace function get_matches(_mi match_input)
returns setof contact_index
as $func$
begin
return query select get_matches(array[_mi]);
end
$func$
language plpgsql
strict;
或者改用SQL函数:
create or replace function get_matches(_mi match_input)
returns setof contact_index
as $func$
select get_matches(array[_mi]);
$func$
language sql
strict;
关于postgresql - Postgres:如何创建返回setof类型的重载函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49232106/