PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

JDBC COPY với kiến

PgJDBC không hỗ trợ COPY trực tiếp, nhưng nó thực hiện thông qua CopyManager API bạn có thể lấy từ PGConnection giao diện của java.sql.Connection do PgJDBC trả lại.

Rất tiếc, bạn không thể sử dụng nó từ một tệp SQL thuần túy nơi bạn trộn COPY hoạt động với các lệnh khác.

Cá nhân tôi muốn giải thích cho psql để chạy .sql các tệp sử dụng Ant <exec> nhiệm vụ. Bằng cách đó, bạn có thể bao gồm COPY dữ liệu nội dòng trong các tệp SQL của bạn.

Thật tuyệt khi cho phép PgJDBC xử lý COPY , nhưng nó không dễ dàng. Nó thực sự là một chế độ giao thức khác trong PostgreSQL và sẽ không có ý nghĩa gì khi sử dụng các giao diện JDBC thông thường với các câu lệnh đã chuẩn bị sẵn, thực thi, v.v. cho nó. Chúng tôi có thể cung cấp một execSQLScript trên PGconnection tùy chỉnh nhưng điều đó sẽ không giúp bạn nhiều vì những thứ như <sql> của Ant nhiệm vụ sẽ không sử dụng nó. Bạn phải viết một nhiệm vụ tùy chỉnh.

Thay vào đó, PgJDBC sẽ phải nói dối khách hàng khá nhiều - khi nó nhập COPY chế độ sau COPY lệnh, nó sẽ phải bỏ qua thông số kỹ thuật JDBC và không thực sự làm những gì nó được cho là để đáp ứng với các lần thực thi câu lệnh JDBC. Điều này có thể sẽ phá vỡ mọi thứ.

Vì vậy - hiện tại, tùy chọn dễ nhất là chỉ thực thi psql lệnh để làm những gì bạn muốn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật hoặc Chèn (nhiều hàng và cột) từ truy vấn con trong PostgreSQL

  2. Khử phân bổ các truy vấn đã chuẩn bị

  3. Sail.js nhiều kết nối khi bắt đầu

  4. Sự cố tự động tăng khóa chính PostgreSQL trong C ++

  5. Cách đọc dịch vụ REST trả về đối tượng JSON và lưu trữ tương tự vào PostgreSQL bằng Mule ESB, Mule Studio