tsknd的な備忘録

再利用しそうな資材置き場

Postgresql .batから.sqlを実行

■ バッチファイルからsqlを実行する

ここでは、postgresデータベースのirisテーブル、carsテーブルに格納されているデータをcsv形式で出力する。

 

・Sample1.bat

 ☆

@echo off
rem PostgreSQLの場所を指定
set PGPATH=c:\"Program Files"\PostgreSQL\9.5\bin\

rem DB接続情報
rem call c:\"Program Files"\PostgreSQL\9.5\pg_env.bat
set USERID=postgres
set DBNAME=postgres
set HOST=localhost
set PORT=5432

rem ポスグレ接続
%PGPATH%psql -h %HOST% -p %PORT% -U %USERID% -d %DBNAME% -f C:/Users/XXXXX/Desktop/psql/csvout1.sql

exit

 

・csvout1.sql

\COPY (select * from cars) TO 'C:\Users\XXXXX\Desktop\psql\out\cars.csv' (FORMAT csv);
\COPY (select * from iris) TO 'C:\Users\XXXXX\Desktop\psql\out\iris.csv' (FORMAT csv);

 

■実行画面

Sample1.batを実行すると、パスワードが聞かれる。

f:id:tsknd:20160714001831p:plain

 

おまけ

■postgres接続後にSQLを実行する場合

postgres=# \i 'C:/Users/tsk/Desktop/psql/csvout.sql'