sql >> Base de Datos >  >> RDS >> PostgreSQL

COPIA JDBC con hormiga

PgJDBC no admite COPY directamente, pero lo hace a través del CopyManager API que puede obtener de PGConnection interfaz de java.sql.Connection devuelto por PgJDBC.

Desafortunadamente, no puede usar eso desde un archivo SQL simple donde mezcla COPY operaciones con otros comandos.

Personalmente, pagaría a psql para ejecutar .sql archivos usando Ant <exec> tarea. De esa forma puedes incluir COPY datos en línea en sus archivos SQL.

Sería bueno habilitar PgJDBC para manejar COPY , pero no es fácil. Es efectivamente un modo de protocolo diferente en PostgreSQL, y no tiene mucho sentido usar las interfaces JDBC habituales con declaraciones preparadas, ejecución, etc. Podríamos proporcionar un execSQLScript en la PGconnection personalizada pero eso no te ayudaría mucho porque cosas como <sql> de Ant tarea no lo usaría. Tendrías que escribir una tarea personalizada.

En cambio, PgJDBC tendría que mentirles a los clientes cuando ingresaba COPY modo después de COPY comando, tendría que ignorar la especificación JDBC y no hacer realmente lo que se suponía que debía hacer en respuesta a las ejecuciones de la declaración JDBC. Es probable que esto rompa todo tipo de cosas.

Entonces, por ahora, la opción más fácil es simplemente ejecutar psql comando para hacer lo que quieras.