dポイントプレゼントキャンペーン実施中!

RedHat8.0にpostgresql-7.2.3.tar.gzをインストールしています。database_6に接続し、

database_6=# COPY tablename FROM '/var/test/testdata.csv' WITH CSV;

を実行すると(tablenameとtestdataとは同一名にしてあります)、

ERROR: parser: parse error at or near "csv"

と表示されてしまいます。どこが悪いのでしょうか?

A 回答 (2件)

7.x の PostgreSQL では COPY コマンドが WITH CSV をサポートしていないようです。



http://www.postgresql.org/docs/7.2/static/sql-co …
http://www.postgresql.org/docs/7.4/static/sql-co …
には WITH CSV がありません。

http://www.postgresql.org/docs/8.0/static/sql-co …
http://www.postgresql.org/docs/8.4/static/sql-co …
には WITH CSV があります。

できるだけ安定した新しいバージョンの postgresql-8.x を利用するのが望ましいのですが、
何か理由があって 7.2.3 を使うのであれば、COPY コマンドではない方法を探す必要があります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

最初、書籍の内容に基づいて(Yumで)インストールしようとしたところ、いつの間にか(ダブルクリックで)pgdg-redhat-8.0-5.noarch.rpmがインストールされてしまい、エンコーディングがASCIIで初期化されてしまっていましたため、アンインストールしまいた。しかしながら、その後、既にインストールされているというエラーメッセージが出て、再インストールができなくなりました。そこで、別の書籍
書籍の内容に基づいて、postgresql-7.2.3.tar.gz(付録)をインストールしたという経緯があります。こちらはUTF8に対応していないようで、EUC_JPになっていますが、EUC_JPのファイルがなぜか文字化けもします。RedHat8.0からCentOS5へ移行をする際(検討中)、あるいは、どこかで、postgresql-8.x.tar.gzをダウンロードできれば、postgresql-8.xを試してみます。

お礼日時:2011/06/10 15:27

testdata.csvをインポートしたいならその後の「/」は不要でしょう。

この回答への補足

postgresql-7.2.3.tar.gzをインストールする際、UTF8を設定できず、EUC_JPになってしまいました。TeraPadでは文字コード指定再読込がEUC(E)しかないため、不安でしたが、RedHat8.0のTerminalで開いてみると、日本語表示に関しては問題なさそうです。ただし、アクセント文字は文字化けしてしまっています。

補足日時:2011/06/06 00:27
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

testdata.csvの後には「/」は付けていません。

参考にしていた書籍にデータベースにテーブルを作成することが記載されていませんでした。しかしながら、テーブルを作成しても同じ結果です。インポートしようとしているファイルには、ラベルを付けていません(Windows版でインポートした際、不要であったため)。スキーマや主キーを作成していないと、問題はあるでしょうか?

お礼日時:2011/06/06 00:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!