[pgsql-jp: 34096] Re: JDBCでの COPY

UNO Shintaro uno @ venus.dti.ne.jp
2004年 10月 12日 (火) 19:42:05 JST


>ひょっとしてJDBC経由で\copyは使えないのでしょうか?もし、使えないのでしたら、 
>こういった場合はどういった回避策があるのでしょうか。

\copyはpsql自身が解釈実行するコマンドなのでJDBCでは実行できません。
内部的にはCOPY FROM stdinやCOPY TO stdoutが使われています。下記参照。

http://www.postgresql.jp/document/pg732doc/reference/sql-copy.html
>Tip: COPY は psql の \copyとは異なるものであることに注意してください。
>\copy は COPY FROM stdin や COPY TO stdout を呼び出し、psql クライア
>ントから接続できるファイルにデータの書き込み/読み込みを行います。した
>がって、\copy コマンドが使用された場合には、ファイルへのアクセスとア
>クセス権限は、バックエンドではなく、クライアント側に依存します。 

回避策としては、次のような選択肢があると思います。
選択肢1: psqlを呼び出して\copyで処理させる
選択肢2: psqlの\copyを真似た、COPY FROM stdinを使う処理を作成する

-- 
UNO Shintaro, 宇野 信太郎
mailto:uno @ venus.dti.ne.jp
http://www.venus.dti.ne.jp/~uno/



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