PgJDBC biedt geen ondersteuning voor COPY
rechtstreeks, maar wel via de CopyManager
API die u kunt krijgen van de PGConnection
interface van de java.sql.Connection
geretourneerd door PgJDBC.
Helaas kun je dat niet gebruiken vanuit een gewoon SQL-bestand waarin je COPY
. mixt bewerkingen in met andere commando's.
Persoonlijk zou ik betalen voor psql
om .sql
uit te voeren bestanden met de Ant <exec>
taak. Op die manier kunt u COPY
. opnemen gegevens in-line in uw SQL-bestanden.
Het zou leuk zijn om PgJDBC in staat te stellen COPY
te verwerken , maar het is niet gemakkelijk. Het is in feite een andere protocolmodus in PostgreSQL, en het heeft niet veel zin om daarvoor de gebruikelijke JDBC-interfaces te gebruiken met voorbereide instructies, uitvoer, enz. We kunnen een execSQLScript
op de aangepaste PGconnection
maar dat zou je niet veel helpen, want dingen als Ant's <sql>
taak zou het niet gebruiken. Je zou een aangepaste taak moeten schrijven.
In plaats daarvan zou PgJDBC min of meer moeten liegen tegen klanten - toen het COPY
invoerde modus na een COPY
commando, zou het de JDBC-specificatie moeten negeren en niet echt doen wat het moest doen als reactie op het uitvoeren van JDBC-instructies. Dit zou waarschijnlijk allerlei dingen kapot maken.
Dus - voor nu is verreweg de gemakkelijkste optie om gewoon de psql
. uit te voeren commando om te doen wat je wilt.