Vous n'êtes pas identifié(e).

#1 14/03/2014 13:06:14

[RESOLU] COPY TO serveur > local

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

#2 14/03/2014 14:19:51

rjuju
Administrateur

Re : [RESOLU] COPY TO serveur > local

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.

Hors ligne

#3 14/03/2014 14:58:20

Re : [RESOLU] COPY TO serveur > local

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

#4 14/03/2014 16:29:42

rjuju
Administrateur

Re : [RESOLU] COPY TO serveur > local

Il suffit de précéder votre \copy par un « \o chemin/vers/fichier ».

Hors ligne

#5 14/03/2014 16:39:49

Re : [RESOLU] COPY TO serveur > local

Merci, ça marche impeccable !

Hors ligne

Pied de page des forums