解決済みの質問
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
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
0人が「このQ&Aが役に立った」と投票しています