但我没办法叫它。
CREATE or replace FUNCTION wyplaty_dla_prac_o_email (threshold_value integer,email_of text)
RETURNS TABLE(f1 int,f2 timestamp)
AS
$$
begin
select amount, payment_date from payment p join customer c on p.customer_id=c.customer_id
where amount > $1 and email =$2;
end;
$$
LANGUAGE plpgsql;当我叫它的时候
select * from wyplaty_dla_prac_o_email(6,'dana.hart@sakilacustomer.org')它显示错误:未指明应将查询结果保存在何处
发布于 2021-08-12 19:26:50
您缺少一个返回语句。您的函数正在执行查询,但不对结果做任何操作,这将产生错误。
您需要返回查询结果,如下所示:
CREATE or replace FUNCTION wyplaty_dla_prac_o_email (threshold_value integer,email_of text)
RETURNS TABLE(f1 int,f2 timestamp)
AS $$ begin
return query
select amount, payment_date from payment p join
customer c on p.customer_id=c.customer_id
where amount > $1 and email =$2;
end; $$
LANGUAGE plpgsql;或者,如果它只是一个查询的包装器,那么您可以只在SQL中指定函数,而不是使用plpgsql,这样可以节省开销。
https://stackoverflow.com/questions/68763048
复制相似问题