[pgsql-jp: 34095] JDBCでのCOPY

Shinzo Matthew SAITO s-ml @ shinzo.net
2004年 10月 12日 (火) 18:17:33 JST


齊藤新三と申します。

JDBC経由でのCOPYコマンドに関してお伺い致します。

使用しているのはPostgreSQL7.4.2です。

WEBアプリケーションでDB上のあるテーブルに大量にデータを書き込む必要があるた 
め、copyコマンドの使用を検討しています。そこで、いろいろ試してみたのですが、 
うまくいきません。皆様のお知恵をお借りしたいと思います。

Java上で、copyコマンドでインポートするファイルを作成し、JDBC経由で以下のコマ 
ンドを発行しようとしたらエラーが起きました。

(1)  COPY table_name(c1,c2,c3) FROM '/var/sqlcopy_1.txt' WITH DELIMITER ','

エラーは、

(1)'  org.postgresql.util.PSQLException: ERROR: must be superuser to COPY 
to or from a file

です。

これはユーザーの権限問題があるのは知っていましたので、今度は、SQL文を以下のも 
のに変更しました。

(2)  \copy table_name(c1,c2,c3) FROM '/var/sqlcopy_1.txt' WITH DELIMITER ','

この場合もだめでして、以下のようなエラーをはきました。

(2)'  org.postgresql.util.PSQLException: ERROR: syntax error at or near "\"

ところが、うえの(2)のSQL文を直接psqlから発行するとすんなり通ってしまいます。

なにぶん初心者ですので、原因が皆目検討つきません。
ひょっとしてJDBC経由で\copyは使えないのでしょうか?もし、使えないのでしたら、 
こういった場合はどういった回避策があるのでしょうか。

どうぞよろしくお願い致します。



☆----------------☆
Shinzo Matthew SAITO  齊藤 新三
  E-mail mailto:s-ml @ shinzo.net





pgsql-jp メーリングリストの案内