Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je cherche à exporter une table en local depuis ma base de données qui est sur un serveur distant et j'ai quelques difficultés pour utiliser la commande COPY... TO... (je suis sur Windows et le serveur distant également).
Voici la requête exécutée depuis pgAdmin et l'erreur renvoyée :
COPY schema.table TO 'D:\\test.csv' WITH CSV ;
ERREUR: n'a pas pu ouvrir le fichier « D:\\test.csv » en écriture : Permission denied
La question est donc : comment indiquer dans le chemin d'accès que je souhaite écrire en local ? Est-il possible de passer l'adresse IP de mon poste ?
Merci pour votre aide,
Thomas
Dernière modification par Thomas Williamson (14/03/2014 16:40:07)
Hors ligne
Bonjour,
la commande COPY s'effectue au niveau du serveur. Il faut donc que le serveur dispose d'un disque D et que l'utilisateur lançant le service ait le droit d'écrire à la racine. Si vous voulez le faire côté client, vous pouvez utiliser la métacommande \copy de psql à la place.
Julien.
https://rjuju.github.io/
Hors ligne
Merci. J'ai fais des recherches pour utiliser le terminal psql, du coup. Je cherche à indiquer dans la commande le répertoire local où je souhaite enregistrer mon fichier csv.
J'en suis là mais sans succès :
ma_base=# \copy schema.table to stdout with csv header
Je suis visiblement obligé d'utiliser stdout pour envoyer l'export vers le poste client (mon poste, en local) mais dans ce cas, je ne vois pas comment spécifier un nom de fichier et un chemin d'accès...
Thomas
Hors ligne
Il suffit de précéder votre \copy par un « \o chemin/vers/fichier ».
Julien.
https://rjuju.github.io/
Hors ligne
Merci, ça marche impeccable !
Hors ligne
Pages : 1