我试过Postgres 9.3
CREATE OR REPLACE FUNCTION f_tsd(koakuupav date, kolkuupaev date)
RETURNS TABLE (
isikukood int
) AS
$func$
select 1 where current_date between koakuupaev and kolkuupaev
$func$ LANGUAGE sql STABLE;
但收到错误
ERROR: column "koakuupaev" does not exist
在plpgsql中,它会在运行时导致相同的错误:
CREATE OR REPLACE FUNCTION f_tsd(koakuupav date, kolkuupaev date)
RETURNS TABLE (
isikukood int
) AS
$func$
BEGIN
RETURN QUERY select 1 where current_date between koakuupaev and kolkuupaev;
end; $func$ LANGUAGE plpgsql stable;
select * from f_tsd(current_date, current_date)
如何将参数传递给Postgres函数中的where子句? 根据文档命名参数必须工作。
答案 0 :(得分:3)
第一个参数名称koakuupav
缺少e
中的pav
而不是paev
f_tsd(koakuupav date, kolkuupaev date)
between koakuupaev and kolkuupaev