Wygląda na to są mylone przez Linux vs. notacji file-path Windows. To, co tam masz, to ścieżka Linuksa zakotwiczona w katalogu głównym. System Windows używa liter dysków - które można określić równie dobrze w przypadku systemu Windows.
Jeśli używasz notacji systemu Windows, należy uważać, że trzeba ukośniki ewakuacyjnych jeśli nie używasz standard_conforming_strings = on
- który jest domyślnym w najnowszej wersji 9.1, ale nie w starszych wersjach. W ten sposób:
COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...
Działa w każdym przypadku.
Z standard_conforming_strings = on
można również napisać:
COPY data_table from 'C:\tmp\outputdata.csv' WITH ...
Należy pamiętać, że serwer PostgreSQL Okna rozumie również domyślną ścieżkę zapisu z ukośników zamiast ukośniki.
Dla SQL COPY FROM/TO
można użyć dowolnej ścieżki, którą właściciel procesu serwera (domyślnie postgres
) ma uprawnienia do odczytu/zapisu.
Należy zauważyć, że dla meta polecenia \copy
klienta psql obowiązują uprawnienia bieżącego użytkownika lokalnego.
Dziękuję za wyjaśnienie. – Jeiman
Nie używaj polecenia COPY z pgAdmin na komputerze z systemem Windows i spróbuj odczytać plik z lokalnego środowiska Windows. To się nie powiedzie. Możesz mimo to zaimportować plik CSV. Użyj tego GUI. Kliknij prawym przyciskiem myszy na żądany stół i wybierz import ... – R13e