PostgresのCOPY文はできない?

解決済みの質問

PostgresのCOPY文はできない?

Postgres7.3.4 を使用しています。

サーバ内にファイルを作成し、
それをまとめてDBに受入れるシステムを作成中です。
ファイルを作成するところまでは問題ないのですが、
JDBC経由で COPY文を発行できず困っています。

具体的には
Statement stmt = conn.createStatement();
Stirng sql = "COPY table FROM 'file'";
stmt.execute(sql);
ということをしたいのですが実行時エラーになります。

Exception in thread "main" java.sql.SQLException:
ERROR: copy: line 1,
Invalid EUC_JP character sequence found (0xbb00)
「文字シーケンスが無効です。」ということですが・・・

Connectionはスーパーユーザ権限で作成しています。
psqlコマンドで直接COPY文を実行すると成功します。

文字コードの問題なのでしょうか?
あるいは insert文を使うようにするしかないのでしょうか?

投稿日時 - 2004-02-12 19:18:10

連想キーワード:

QNo.777662

困ってます

質問者が選んだベストアンサー

Invalid EUC_JP character sequence found
(無効なEUC-JP文字シーケンスが見つかった。)
と言うエラーが出ていると言う事はPostgreSQL上でエラーが出ていると言う事でしょうね。

おそらく文字コードかcsvファイル内の区切りやエスケープ処理の問題だと思います。処理中にEUC-JPでは使われないコードを検出した感じの様ですが、ファイル名かcsvファイルのどちらでエラーが出ているまでは解りませんが・・・。

参考URL:http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/sql-copy.html

投稿日時 - 2004-02-12 20:02:57

お礼

ファイル内には日本語文字を含みますので、このあたりの問題なのかもしれません。

とりあえず今回は、
ファイル作成までをJavaで行い、あとはシェルスクリプトで受入てしまいます。

ありがとうございました。

投稿日時 - 2004-02-13 13:38:19

ANo.1

0人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • Statement ...
  • Closing statement ...
  • Statementの訳 ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら