2014-11-01 10 views
0

에서 저장 프로 시저 절 내가포스트 그레스

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; 

포스트 그레스 9.3에서 재판 곳이라는 매개 변수를 전달하지만, plpgsql에서 오류

ERROR: column "koakuupaev" does not exist 

을 가지고하는 방법은 런타임에 동일한 오류가 발생합니다

Postgres의 where 절에 매개 변수를 전달하는 방법은 무엇입니까? 문서에 따르면 명명 된 매개 변수가 작동해야합니다. 당신이 사용하는 어떤 포스트 그레스 버전

+1

대신 paevpave 누락? 필자가 잘못하지 않는다면 SQL 함수 내에서 명명 된 매개 변수를 사용할 수있는 기능이 9.2에 추가되었습니다. 이전 버전을 사용하는 경우 $ 1 및 $ 2를 사용해야합니다. 그러나 어느 경우 든 리턴 된 테이블의 데이터 유형을'integer'로 변경하거나'1'을 숫자 값으로 변환해야합니다 (두 번째 버전에서 문제가되는 것 같습니다) –

+0

9.3을 사용하고 있습니다. 워드 프로세서에 따르면 매개 변수가 작동해야합니다. 반환 유형을 정수로 변경했지만 문제가 지속됩니다. – Andrus

답변

3

첫 번째 매개 변수 이름 koakuupav

f_tsd(koakuupav date, kolkuupaev date) 

between koakuupaev and kolkuupaev