1. ホーム
  2. postgresql

[解決済み] PostgreSQL。コマンドラインからパラメータを渡すには?

2022-09-12 03:16:16

質問

私は、あるスクリプトで、やや詳細なクエリを作成しています。 ? プレースホルダーを使用しています。 この同じクエリを psql コマンドライン (スクリプトの外側) から直接テストしたいと思いました。 私は、すべての ? を実際の値で置き換えることを避け、代わりにクエリの後に引数を渡したいのです。

SELECT  * 
FROM    foobar
WHERE   foo = ?
   AND  bar = ?
    OR  baz = ?  ;

のようなものを探しています。

%> {select * from foobar where foo=? and bar=? or baz=? , 'foo','bar','baz' };

どのように解決するのですか?

vコンストラクトを使用することができます。

psql -v v1=12  -v v2="'Hello World'" -v v3="'2010-11-12'"

で、SQLで:v1, :v2 などのように変数を参照します。

select * from table_1 where id = :v1;

引用符を2つ使って文字列や日付の値を渡す方法に注意してください。 " '...' "