PgJDBCはCOPY
をサポートしていません 直接ですが、CopyManager
を介して行います PGConnection
から取得できるAPI java.sql.Connection
のインターフェース PgJDBCによって返されます。
残念ながら、COPY
を混在させるプレーンSQLファイルからは使用できません。 他のコマンドでの操作。
個人的には、psql
にシェルアウトします .sql
を実行するには Ant <exec>
を使用するファイル 仕事。そうすれば、COPY
を含めることができます SQLファイルのインラインデータ。
PgJDBCがCOPY
を処理できるようにすると便利です。 、しかしそれは簡単ではありません。これは事実上PostgreSQLの異なるプロトコルモードであり、プリペアドステートメントや実行などで通常のJDBCインターフェイスを使用することはあまり意味がありません。 execSQLScript
を提供できます カスタムのPGconnection
しかし、Antの<sql>
のようなものがあるので、それはあまり役に立ちません。 タスクはそれを使用しません。カスタムタスクを作成する必要があります。
代わりに、PgJDBCは、COPY
に入ったときに、ほとんどクライアントに嘘をつく必要があります。 COPY
の後のモード コマンドの場合、JDBC仕様を無視する必要があり、JDBCステートメントの実行に応答して想定されていたことを実際に実行する必要はありません。これはあらゆる種類のものを壊す可能性があります。
したがって、今のところ、はるかに簡単なオプションは、psql
を実行することです。 やりたいことをするコマンド。