まずはSQLファイルがあるところでコマンドプロンプト立ち上げる。
(エクスプローラーのpathを表示している部分をクリックして、cmdと入力してEnterキーを押すのが簡単)psql -h ホストのIP -U ユーザー名 -d データベース名
でログイン。\encoding UTF-8
とすればUTF-8での出力になる。\encoding SJIS
とすればShift JISでの出力になる。
\a
で位置合わせのスペースが入らないようになる。
\o test.txt
で出力ファイル指定。(この例では、この後の出力が全てtest.txtに入るようになる。)
もう一度\o
とすれば、コンソールへの出力に戻る。
\i ./foo.sql
でfoo.sqlファイルに記録されたSQL文を実行する。
psqlから出たいときは\q
Shift JISで出力しようとした時、「符号化方式”UTF8″においてバイト列〇〇〇〇〇である文字は符号化方式”SJIS”で等価な文字を持ちません」というエラーが出ることがある。
その場合は、 〇〇〇〇〇 部分でググると該当の文字コードが分かる。
あとはこの文字コードで検索をかける。
まぁそこまでこじれた時は、pgAdmin上でSQLを実行し、データをファイル出力する方が楽かも。
pgAdmin3のクエリーツールでは、メニューの「クエリー」→「Execute to file」をクリックして、ファイルを指定するだけで超簡単に出力できる。