Il semble que vous soyez confus par la notation de chemin de fichier Linux par rapport à Windows. Ce que vous avez là est un chemin Linux ancré à la racine. Windows utilise des lettres de lecteur, que vous pouvez également spécifier lorsque vous exécutez Windows.
Si vous utilisez la notation Windows, veillez à échapper les barres obliques inverses si vous n'utilisez pas standard_conforming_strings = on
- qui est la valeur par défaut dans Postgres 9.1 ou version ultérieure, mais pas dans les anciennes versions. Comme :
COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...
Avec standard_conforming_strings = on
vous pouvez simplement écrire :
COPY data_table from 'C:\tmp\outputdata.csv' WITH ...
Notez qu'un serveur PostgreSQL Windows comprend également la notation de chemin par défaut avec des barres obliques au lieu des barres obliques inverses.
Pour SQL COPY FROM / TO
vous pouvez utiliser n'importe quel chemin que le propriétaire du serveur traite (postgres
par défaut) est autorisé à lire/écrire.
Pour le \copy
meta commande du client psql les permissions de l'utilisateur local actuel s'appliquent.