0
を使用してストアド・ファンクションからのビューを作成します。は、私は、このようなビューを作成しようとしています、その関数のパラメータ
代わりにあれば、私はこれでWHERE
行を置き換え、それはokです:
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行を返す関数は効率的ではないと思ったので、今私はそれを考えるようになりました、それはビューとは違うかもしれません。アイデアをありがとう、私はこれをテストします。 –
SQL関数内の 'select * from view'と同等のステートメントの間に必要なメモリに違いはありません(PL/pgSQLは必要ありません) –