前回 psql の変数について書きましたが 変数への値の代入は psql を起動するコマンドラインからもできます。 というか、バッチ処理などを考えるとそっちがメインになると思います。 (ヒアドキュメントという手もありますが)
SQL は、前回と同じものを使用します。
SELECT * FROM generate_series(1, 100) WHERE generate_series between :start AND :end;
start と end という 2 つの変数を使用しています。
コマンドラインで指定するには、v オプションを使用します。
$ psql -f test.sql -v start=3 -v end=9 db generate_series ----------------- 3 4 5 6 7 8 9 (7 rows)
特定の日付や期間で SQL を実行したい場合などに使えます。