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.