Để bạn có thể xuất tệp trong một máy chủ khác, bạn có hai tùy chọn:
- Tạo một thư mục chia sẻ giữa hai máy chủ để cơ sở dữ liệu cũng có quyền truy cập vào thư mục này.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- Kích hoạt xuất từ máy chủ đích bằng
STDOUT
trong tổng sốCOPY
. Sử dụngpsql
bạn có thể đạt được điều này bằng cách chạy lệnh sau:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
CHỈNH SỬA :Giải quyết vấn đề về các trường chứa nguồn cấp dữ liệu dòng (\n
)
Trong trường hợp bạn muốn loại bỏ các nguồn cấp dữ liệu dòng, hãy sử dụng REPLACE
chức năng.
Ví dụ:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
Xóa nguồn cấp dữ liệu dòng:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Vì vậy, COPY
của bạn sẽ trông như thế này:
COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;