バッチでpostgresDBに接続してデータ抽出を行う。
実行ファイルはedb-psql.exeを用いる。
###実行環境
windows server 2008 R2 Standard
psqledit_4.0.4.1
###バッチ構成
D:
|--¥#Batch開発
|
|--bat
| |--テストpos.bat
|
|--sql
|--テストpos.sql
###テストpos.bat
テストpos.bat
@echo off
SET PGPASSWORD=testpass
SET PGUSER=usr_test
SET PGPORT=5432
SET PGHOST=10.xx.xx.xx
SET PGDATABASE=db_tsna
clip < ¥encoding SJIS
echo #############################
echo ## postgresに接続
echo #############################
D:¥db¥PostgreDB¥migrationstudio¥edb-psql.exe -f "D¥#Batch開発¥sql¥テストpos.sql"
使用するのはpsql.exeではなくedb-psql.exeです。
###テストpos.sql
テストpos.sql
¥o PAR_DATA.txt
select 一連番号,更新年月日,sum(金額)
from table_TEST
where 更新年月日 < '20190301' and 更新年月日 > '20190131'
group by 一連番号,更新年月日
order by sum(金額) desc;
¥q
###補足説明
先頭に¥o [ファイル名].[拡張子]を記述すると、postgreでファイル出力ができます。
セットとして最後尾に¥qを書いて、勝手に終了するようにします。
sqlスクリプトの保存は文字コードがUTF8、改行コードはLFにしないとうまくSQL文を読み取ってもらえません。
この時、出力ファイル名が日本語の場合は文字化けしてしまうので、今回は英語にしています。
出力ファイル名を変更したい場合は、テストpos.batの中にリネーム(ren)コマンドを付け加えることで対応できます。(コードは模索中です)