3

更新: この特定の問題は、psql に含まれるスクリプトとは関係ありません。含まれているスクリプトの変数は、期待どおりに補間されます。実際の問題は、SQL 関数定義の $$ 引用符内で psql 変数を使用した場合に発生し、この質問で説明されています

psql 変数を使用して、かなり長い SQL スクリプトでコマンド ラインからいくつかのパラメーター (テーブル名、値) を設定しています。スクリプトが長くなりすぎたので、いくつかの部分に分割し、\ir subscript.sql構文を使用してメイン スクリプトに含めました。ただし、メイン スクリプトの変数はサブスクリプトに渡されません。\i fileドキュメントには、キーボードでファイルを入力するのと同じこと、つまりスクリプト環境を維持する必要があると記載されている ため、これは奇妙です。

psqlに含まれるスクリプトに変数を渡す簡単な方法はありますか?

psql バージョン 9.3.1 を使用しています。

4

1 に答える 1

3

http://www.postgresql.org/docs/current/static/app-psql.html--variable=をご覧ください。

例えば。

psql -d somedb -U someuser -f yourscript.sql --variable=Foo=foobar

スクリプトでは、次のことができます。

UPDATE sometable SET somecol = :Foo;
于 2013-11-07T21:27:55.903 に答える