PgJDBC não suporta
COPY diretamente, mas o faz através do CopyManager API que você pode obter em PGConnection interface do java.sql.Connection retornado por PgJDBC. Infelizmente, você não pode usar isso de um arquivo SQL simples onde você mistura
COPY operações com outros comandos. Pessoalmente, eu pagaria para
psql para executar .sql arquivos usando o Ant <exec> tarefa. Dessa forma, você pode incluir COPY dados em linha em seus arquivos SQL. Seria bom habilitar o PgJDBC para lidar com
COPY , mas não é fácil. É efetivamente um modo de protocolo diferente no PostgreSQL, e não faz muito sentido usar as interfaces JDBC usuais com instruções preparadas, execute, etc. para ele. Poderíamos fornecer um execSQLScript no PGconnection personalizado mas isso não ajudaria muito porque coisas como o <sql> do Ant tarefa não iria usá-lo. Você teria que escrever uma tarefa personalizada. Em vez disso, o PgJDBC teria que mentir para os clientes - quando digitava
COPY modo após um COPY comando, ele teria que ignorar a especificação JDBC e realmente não fazer o que deveria em resposta à execução da instrução JDBC. Isso provavelmente quebraria todos os tipos de coisas. Então - por enquanto, a opção mais fácil é apenas executar o
psql comando para fazer o que você quer.