[PostgreSQL] シェルやコンソールから変数を渡す『psql -v』パラメータ

モコ#ミク

PostgreSQLを使ってます。(Redshiftだけど)


そこで、SQLをファイルに記載して、それをシェルから実行、とかのバッチ作成することに。


-vでファイルに記載された変数へ渡すことが出来るんだけど、文字列系をどうやって渡すのか、イマイチ分からず、、


いろいろ試してた。。


んで、結局は何のことはなく、こんな感じでOKでした。。


test.sql

select * from hoge where lastdate = :N;



test.sh

LASTDATE=`date --date '1 day ago' +%Y-%m-%d`
psql -U xxxx -h xxxx -p xxxx -d xxxx -f test.sql -v N="'${LASTDATE}'"> test.log




N=をダブルクォーテーションで括って、その中にシングルクォーテーションを入れると…
シングルクォーテーションも一緒に変数に入れるイメージ。




関連記事
Posted byモコ#ミク

Comments 0

There are no comments yet.

Leave a reply