PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

JDBC COPY z mrówką

PgJDBC nie obsługuje COPY bezpośrednio, ale robi to za pomocą CopyManager API, które możesz uzyskać z PGConnection interfejs java.sql.Connection zwrócone przez PgJDBC.

Niestety nie możesz użyć tego ze zwykłego pliku SQL, w którym mieszasz COPY operacje z innymi poleceniami.

Osobiście wyłożyłbym psql uruchomić .sql pliki używające Ant <exec> zadanie. W ten sposób możesz dołączyć COPY dane wbudowane w plikach SQL.

Byłoby miło włączyć PgJDBC do obsługi COPY , ale to nie jest łatwe. W rzeczywistości jest to inny tryb protokołu w PostgreSQL i nie ma większego sensu używanie do tego zwykłych interfejsów JDBC z przygotowanymi instrukcjami, wykonywaniem itp. Możemy dostarczyć execSQLScript na niestandardowym PGconnection ale to by ci nie pomogło, ponieważ rzeczy takie jak <sql> Anta zadanie by go nie użyło. Musisz napisać niestandardowe zadanie.

Zamiast tego, PgJDBC musiałby okłamywać klientów - kiedy wszedł COPY tryb po COPY polecenie, musiałby zignorować specyfikację JDBC i tak naprawdę nie robić tego, co powinien w odpowiedzi na wykonanie instrukcji JDBC. Mogłoby to spowodować uszkodzenie wielu rzeczy.

Tak więc - na razie najłatwiejszą opcją jest po prostu wykonanie psql polecenie, aby robić to, co chcesz.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. psycopg2 odpowiednik polecenia R dbWriteTable i uzyskanie większej wydajności z kodu Pythona

  2. Heroku Postgres:Za dużo połączeń. Jak zabić te połączenia?

  3. Jak wyświetlić wszystkie bazy danych i ich schematy w postgresql?

  4. Włącz obsługę SSL dla pgsql

  5. Użyj wyzwalacza Postgres, aby zarejestrować kod JSON tylko zmodyfikowanych pól