PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

JDBC КОПИРАНЕ с ant

PgJDBC не поддържа COPY директно, но го прави чрез CopyManager API, който можете да получите от PGConnection интерфейс на java.sql.Connection върнат от PgJDBC.

За съжаление, не можете да използвате това от обикновен SQL файл, където смесвате COPY операции с други команди.

Лично аз бих дал пари за psql за да стартирате .sql файлове с помощта на Ant <exec> задача. По този начин можете да включите COPY данни на линия във вашите SQL файлове.

Би било хубаво да разрешите на PgJDBC да обработва COPY , но не е лесно. Това е ефективно различен режим на протокол в PostgreSQL и няма много смисъл да се използват обичайните JDBC интерфейси с подготвени оператори, изпълнение и т.н. за него. Можем да предоставим execSQLScript на персонализираната PGconnection но това няма да ви помогне много, защото неща като <sql> на Ant задача няма да го използва. Ще трябва да напишете персонализирана задача.

Вместо това PgJDBC ще трябва доста да лъже клиентите - когато въведе COPY режим след COPY команда, ще трябва да игнорира спецификацията на JDBC и наистина да не прави това, което трябваше да направи в отговор на изпълнението на израз на JDBC. Това вероятно ще повреди всякакви неща.

Така че - засега най-лесният вариант е просто да изпълните psql команда, за да направите това, което искате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Предаване на аргументи от командния ред към sql (Postgres)

  2. Как да копирате една колона от таблица в колона на друга таблица в PostgreSQL, сравнявайки същия идентификатор

  3. UnknownHostException при опит за свързване към heroku-postgres от локален Springboot проект с Spring JPA

  4. Защо не мога да инсталирам psycopg2? (Python 2.6.4, PostgreSQL 8.4, OS X 10.6.3)

  5. как да променя версията на Python, използвана от plpython на Mac OSX?