2017-05-17 3 views
0

Je suis en train d'exécuter cette commande:COPY PSQL ne peut pas trouver le fichier

PS C:\Program Files\PostgreSQL\9.4\bin> .\psql.exe -h front.linux-pgsql01.qa.local -p 5432 -d site -U qa -w -c "Delete from product_factor_lolek; COPY product_factor_lolek FROM E'C:\\OP_data\\SEARCH\\1.csv' delimiter '^' CSV;"

Mon fichier se trouve sur ce chemin: C: \ OP_data \ RECHERCHE \ 1.csv. Mais en fait, j'ai une erreur:

ERROR: could not open file "C:\OP_data\SEARCH\1.csv" for reading: No such file or directory

J'utilise Windows Server, PostgreSQL 9.4. Que dois-je écrire pour le bon chemin?

P.S. Je ne peux pas utiliser \ COPY

Répondre

0

La commande COPY tentera d'accéder à votre fichier CSV sur le serveur (front.linux-pgsql01.qa.local), pas dans le client. Donc, vous devez envoyer votre CSV là-bas et pointer la commande à son chemin ou utiliser stdin comme vous l'avez mentionné:

psql.exe -h front.linux-pgsql01.qa.local -p 5432 -d site -U qa -w -c "Delete from product_factor_lolek; COPY product_factor_lolek FROM STDIN' delimiter '^' CSV;" < C:\OP_data\SEARCH\1.csv 
+0

Ok, mais si je veux utiliser .csv sur ma machine locale? Dois-je utiliser "STDIN" pour celui-ci? Et si oui, comment puis-je faire cela? –

+0

@AntonErjomin Oui, c'est possible. Voir ma réponse éditée. –

+0

Malheureusement, j'ai toujours un message d'erreur: 'PS C: \ Program Files \ PostgreSQL \ 9.4 \ bin>. \ Psql.exe -h front.linux-pgsql01.qa.local -p 5432 -d site -U qa -w -c "Supprimer de product_factor_lolek; COPY product_factor_lolek FROM délimiteur STDIN '^' CSV;"