Es sieht so aus, als ob Sie durch die Notation von Linux- und Windows-Dateipfaden verwirrt sind. Was Sie dort haben, ist ein Linux-Pfad, der mit root verankert ist. Windows verwendet Laufwerksbuchstaben, die Sie auch unter Windows angeben können.
Wenn Sie die Windows-Notation verwenden, achten Sie darauf, dass Sie Backslashes maskieren müssen wenn Sie standard_conforming_strings =on
- Dies ist die Standardeinstellung in Postgres 9.1 oder höher, aber nicht in älteren Versionen. Wie:
COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...
Mit standard_conforming_strings =on
Sie können einfach schreiben:
COPY data_table from 'C:\tmp\outputdata.csv' WITH ...
Beachten Sie, dass ein PostgreSQL-Windows-Server auch die standardmäßige Pfadnotation mit Schrägstrichen anstelle von Backslashes versteht.
Für SQL COPY FROM / TO
Sie können jeden Pfad verwenden, den der Eigentümer des Servers verarbeitet (postgres
standardmäßig) hat die Berechtigung zum Lesen / Schreiben.
Für den \copy
meta-Befehl des psql-Clients gelten die Berechtigungen des aktuellen lokalen Benutzers.