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

Tại sao tôi không thể sử dụng một biến trong lệnh gạch chéo ngược postgres (\ COPY)

Nói chung, thay thế biến hoạt động với các lệnh meta (bắt đầu bằng dấu gạch chéo ngược), nhưng \copy là một ngoại lệ, như được ghi lại trong trang web của psql :

Tôi không đồng ý với nhận xét của @BaconBits cho câu hỏi EXECUTE của plpgsql có thể là câu trả lời. Câu lệnh phía máy chủ, động hoặc cách khác, sẽ không truy cập vào hệ thống tệp phía máy khách, trái với \copy . Bạn có thể sử dụng COPY thay vào đó, nhưng nó yêu cầu phải là superuser và tệp đó mới có thể truy cập được vào postgres người dùng trên máy chủ.

Tôi tin rằng \copy từ một tên tệp biến, biến đó phải được đưa vào tập lệnh trước psql đọc nó. Bạn có thể tích hợp tập lệnh SQL vào một tập lệnh shell và cấp nó vào psql dưới dạng chuỗi ở đây có thể mua được hoặc lọc nó qua sed hoặc perl hoặc bất kỳ phương thức unix-ish nào tương tự.




  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ài đặt Tiện ích mở rộng PostgreSQL cho tất cả các lược đồ

  2. PSQLException:giao dịch hiện tại bị hủy bỏ, các lệnh bị bỏ qua cho đến khi kết thúc khối giao dịch

  3. quyền bị từ chối cố gắng đọc tệp csv bằng JDBC cho cơ sở dữ liệu postgres

  4. PostgreSQL giải thích cho tôi biết chính xác là gì?

  5. Chọn hàng đầu tiên trong mỗi nhóm GROUP BY?