sql >> Databáze >  >> RDS >> PostgreSQL

JDBC COPY s ant

PgJDBC nepodporuje COPY přímo, ale dělá to přes CopyManager API můžete získat z PGConnection rozhraní java.sql.Connection vrátil PgJDBC.

Bohužel to nemůžete použít z prostého SQL souboru, kde mícháte COPY operace s jinými příkazy.

Osobně bych se rozhodl pro psql ke spuštění .sql soubory pomocí Ant <exec> úkol. Tímto způsobem můžete zahrnout COPY data in-line ve vašich SQL souborech.

Bylo by hezké povolit PgJDBC pro zpracování COPY , ale není to jednoduché. Je to v podstatě jiný režim protokolu v PostgreSQL a nedává moc smysl používat pro něj obvyklá rozhraní JDBC s připravenými příkazy, spouštěním atd. Můžeme poskytnout execSQLScript na vlastní PGconnection ale to by vám moc nepomohlo, protože věci jako Antův <sql> úkol by to nepoužil. Budete muset napsat vlastní úkol.

Místo toho by PgJDBC muselo do značné míry lhát klientům - když zadalo COPY režimu po COPY příkaz, musel by ignorovat specifikaci JDBC a ve skutečnosti nedělat to, co měl v reakci na provedení příkazu JDBC. To by pravděpodobně rozbilo nejrůznější věci.

Takže – prozatím je zdaleka nejjednodušší možností jednoduše spustit psql příkaz dělat, co chcete.




  1. Mysql dotaz vyhledá řetězec ve všech sloupcích tabulky

  2. Optimalizujte dotaz mysql pro použití indexu na klauzuli Bitwise where

  3. jednoduché uvozovky v SQL Query

  4. Vyberte řádek spolu s jeho následujícími a předchozími řádky