Sembra che siete confusi da Linux vs Windows notazione file-path. Quello che hai è un percorso Linux ancorato a root. Windows utilizza lettere di unità, che è possibile specificare altrettanto bene quando si esegue Windows.
Se si utilizza la notazione di Windows, fare attenzione che si deve backslash escape se non si utilizza standard_conforming_strings = on
- che è il default nella sua ultima versione 9.1 ma non nelle versioni precedenti. Come questo:
COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...
Funziona in ogni caso.
Con standard_conforming_strings = on
si potrebbe anche scrivere:
COPY data_table from 'C:\tmp\outputdata.csv' WITH ...
Si noti che un server PostgreSQL di Windows capisce anche la notazione percorso predefinito con barre invece di backslash.
Per SQL COPY FROM/TO
è possibile utilizzare qualsiasi percorso che il proprietario del server elabora (postgres
per impostazione predefinita) dispone dell'autorizzazione alla lettura/scrittura.
Si noti che per il meta comando \copy
del client psql si applicano le autorizzazioni dell'utente locale corrente.
fonte
2012-04-09 21:04:11
Grazie per la spiegazione. – Jeiman
Non utilizzare il comando COPY con pgAdmin su un computer Windows e provare a leggere un file dal proprio ambiente Windows locale. Questo fallirà. Puoi comunque importare un file CSV. Usa la GUI per farlo. Fare clic con il tasto destro sulla tabella desiderata e selezionare l'importazione ... – R13e