sql >> Database >  >> RDS >> PostgreSQL

JDBC KOPIE met ant

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.




  1. Een lijst met partitiefuncties retourneren in SQL Server (T-SQL)

  2. Wat is de beste manier om datum en tijd op te slaan in MySQL?

  3. Zoekcriteria verschil tussen Like vs Bevat() in oracle

  4. Zelfreferentiële records invoegen in Postgresql