PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

SALINAN JDBC dengan semut

PgJDBC tidak mendukung COPY langsung, tetapi dilakukan melalui CopyManager API yang bisa Anda dapatkan dari PGConnection antarmuka java.sql.Connection dikembalikan oleh PgJDBC.

Sayangnya, Anda tidak dapat menggunakannya dari file SQL biasa tempat Anda mencampur COPY operasi dengan perintah lain.

Secara pribadi, saya akan membayar ke psql untuk menjalankan .sql file menggunakan Ant <exec> tugas. Dengan begitu Anda dapat memasukkan COPY data in-line dalam file SQL Anda.

Akan menyenangkan untuk mengaktifkan PgJDBC untuk menangani COPY , tapi itu tidak mudah. Ini secara efektif merupakan mode protokol yang berbeda di PostgreSQL, dan tidak masuk akal untuk menggunakan antarmuka JDBC biasa dengan pernyataan yang disiapkan, jalankan, dll, untuk itu. Kami dapat memberikan execSQLScript pada PGconnection khusus tapi itu tidak akan banyak membantu Anda karena hal-hal seperti <sql> . Ant's tugas tidak akan menggunakannya. Anda harus menulis tugas khusus.

Sebagai gantinya, PgJDBC harus berbohong kepada klien - ketika memasukkan COPY mode setelah COPY perintah, itu harus mengabaikan spesifikasi JDBC dan tidak benar-benar melakukan apa yang seharusnya sebagai tanggapan terhadap eksekusi pernyataan JDBC. Ini kemungkinan akan merusak banyak hal.

Jadi - untuk saat ini, sejauh ini opsi termudah adalah dengan menjalankan psql perintah untuk melakukan apa yang Anda inginkan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL memeriksa apakah array berisi elemen apa pun dari array sebelah kiri

  2. Cara menduplikasi skema di PostgreSQL

  3. Hasilkan ID otomatis di postgresql

  4. Kueri Lintas Basis Data di PostgreSQL

  5. Cara menyimpan array atau beberapa nilai dalam satu kolom