Windowsのバッチファイルを作って、そのバッチファイルからSQLを呼び出すことは多々あるかと思います。
今回は、バッチファイルからSQLを呼び出す方法と、SQLにパラメータを渡す方法について紹介していきたいと思います。
環境
- DB:PostgreSQL9.6
バッチファイル
まずはバッチファイルです。
WindowsのBATファイルとして準備します。
SET HOST=localhost SET USERID=postgres SET PORT=17102 SET DBNAME=SAMPLE_DB SET PARAM=100 psql.exe -h %HOST% -U %USERID% -p %PORT% -d %DBNAME% -f sample.sql PARAM=%PARAM%
SQLファイルに渡すパラメータは、DBのホスト名やユーザIDと同じように「PARAM」という名称で、パラメータを準備しています。
SQLファイル
次にSQLファイルです。
テーブル名はすべてサンプルになります。
BATファイルに定義した「PARAM」を使用するSQLを実行することができます。
SELECT id, FROM SAMPLE_TABLE WHERE id = :PARAM
SQLに記載するパラメータは、コロン(:)をキーワード前方に付加することで、SQL内で認識することができます。