我对来自Postgres中创建的函数的参数的传递过程感到困惑:
create type IncorrectRecord as (pattern_number integer, uoc_number integer);
create or replace function text1(pattern text, uoc_threshold integer)
returns setof IncorrectRecord
as $$
begin
return next count(v1.code) as pattern_number, count(v2.code) as uoc_number
from (select * from q1_1 where code like pattern) as v1, (select
* from q1_1 where code like pattern and uoc > uoc_threshold) as v2;
return;
end
$$ language plpgsql;
我修改了一些,没有参数错误,但仍然不起作用。当我用
测试select *
from test1('ECO%', 8)
错误:功能返回两列。
类型有什么错?我该如何修复?
正如消息所说,您要返回两列。返回复合类型:
return next (
count(v1.code) as pattern_number, count(v2.code) as uoc_number
)::IncorrectRecord