0
그 함수의 매개 변수를 사용하여 저장 기능에서보기 만들기 :나는이 같은 뷰 만들기 위해 노력하고
CREATE OR REPLACE FUNCTION calculate(datemin DATE,datemax DATE) RETURNS VOID AS
$BODY$
BEGIN
DROP VIEW IF EXISTS zdroits CASCADE;
CREATE VIEW zdroits AS
SELECT r.*
FROM rights r
WHERE r.date_paid BETWEEN datemin AND datemax;
-- the rest of the function will use the view
END;
$BODY$ LANGUAGE plpgsql;
을하지만 PostgreSQL의 날 column datemin does not exist
말 뷰를 만들 수 없습니다.
WHERE
라인을 교체, 그것은 괜찮 : 나는 매개 변수화 된 뷰를 만들려고하고 있지 않다
WHERE r.date_paid BETWEEN '2011-01-01' AND '2016-12-31'
. 함수에 전달 된 매개 변수를 "리터럴"로 사용하고 싶습니다. this answer가 나를 도울 수있는 방법을 이해하려고 노력
, 나는 이런 것들을 실험 :EXECUTE '
CREATE VIEW zdroits AS
SELECT r.*
FROM rights r
WHERE r.date_paid BETWEEN $1 AND $2;
' USING (datemin,datemax);
하지만 컴파일러는 "어떤 매개 변수 $ 1이 없다"말했다.
이 방법이 있습니까?
왜 당신은 단지 하나의 쿼리에 사용할 수있는보기를 원하십니까? 왜 당신은 날짜 범위를 통과하고 그 결과를 반환 SQL 함수를 만들 수 있습니까? –
나는 700000 행을 리턴하는 함수가 효율적이지는 않을 것이라고 생각했기 때문에 이제는 내 생각을하게한다.보기와 다를 바 없다. 아이디어를 가져 주셔서 감사 드리며, 저는 이것을 시험 할 것입니다. –
'select * from view'와 SQL 함수 내의 동등한 구문 사이에 필요한 메모리에는 차이가 없습니다 (PL/pgSQL은 필요 없습니다) –