Có vẻ như bạn đang nhầm lẫn bởi Linux so với Windows file-con đường ký hiệu. Những gì bạn có ở đó là một con đường Linux được neo vào thư mục gốc. Windows sử dụng các ký tự ổ đĩa - mà bạn có thể chỉ định cũng giống như khi bạn đang chạy trên Windows.
Nếu bạn sử dụng ký hiệu Windows, hãy lưu ý rằng bạn phải thoát dấu chéo ngược nếu bạn không sử dụng standard_conforming_strings = on
- đây là mặc định trong phiên bản mới nhất 9.1 nhưng không có trong các phiên bản cũ hơn. Như thế này:
COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...
Làm việc trong mọi trường hợp.
Với standard_conforming_strings = on
bạn cũng có thể viết:
COPY data_table from 'C:\tmp\outputdata.csv' WITH ...
Lưu ý rằng một máy chủ PostgreSQL Windows cũng hiểu ký hiệu đường dẫn mặc định với dấu gạch chéo thay vì dấu xồ nguợc.
Đối với SQL COPY FROM/TO
, bạn có thể sử dụng bất kỳ đường dẫn nào mà chủ sở hữu quy trình máy chủ (theo mặc định là postgres
) có quyền đọc/ghi.
Lưu ý rằng đối với lệnh \copy
meta của trình khách psql, quyền của người dùng cục bộ hiện tại được áp dụng.
Nguồn
2012-04-09 21:04:11
Cảm ơn bạn đã giải thích. – Jeiman
Không sử dụng lệnh COPY với pgAdmin trên máy Windows và thử đọc một tệp từ môi trường Windows cục bộ của bạn. Điều này sẽ thất bại. Bạn có thể nhập tệp csv. Sử dụng GUI để làm điều đó. Nhấp chuột phải vào bảng mong muốn và chọn nhập… – R13e