bash経由でPostgreSQLにログインし、実行結果をCSVファイルに書き出す
bashからsqlファイルを実行して、出力結果をファイルに書き出す。
基本はこんな形。COPYコマンドを使って結果を標準出力で返す。
1 2 3 4 |
psql -f select_user.sql -U username -d dbname -h localhost -A > user_table.csv // select_user.sql COPY(SELECT * FROM USER) TO stdout with csv delimiter ','; |
引数を渡すことも可能。
1 2 3 4 5 6 7 |
psql -f select_user.sql \ -v firstName=jiro \ -U username -d dbname -h localhost \ -A > user_table.csv // select_user.sql COPY(SELECT * FROM USER WHERE FIRST_NAME = :firstName) TO stdout with csv delimiter ','; |
引数2つ
1 2 3 4 5 6 7 8 |
psql -f select_user.sql \ -v firstName=jiro \ -v lastName=yamada \ -U username -d dbname -h localhost \ -A > user_table.csv // select_user.sql COPY(SELECT * FROM USER WHERE FIRST_NAME = :firstName AND LAST_NAME = :lastName) TO stdout with csv delimiter ','; |
タイトル行も欲しい時はheaderをつける
1 2 |
// select_user.sql COPY(SELECT * FROM USER WHERE FIRST_NAME = :firstName) TO stdout with csv header delimiter ','; |
最近のコメント