Parece que usted está confundido con Linux vs notación file-path de Windows. Lo que tienes allí es una ruta de Linux anclada a la raíz. Windows usa letras de unidad, que puede especificar igual de bien cuando se ejecuta en Windows.
Si utiliza la notación de Windows, tener cuidado de que usted tiene que barras invertidas de escape si no está utilizando standard_conforming_strings = on
- que es el valor por defecto en la última versión 9.1 pero no en las versiones anteriores. De esta manera:
COPY data_table from E'C:\\tmp\\outputdata.csv' WITH ...
Funciona en cualquier caso.
Con standard_conforming_strings = on
también se podría escribir:
COPY data_table from 'C:\tmp\outputdata.csv' WITH ...
Tenga en cuenta que un servidor PostgreSQL Windows también entiende la notación de ruta predeterminada con barras en lugar de barras invertidas.
Para SQL COPY FROM/TO
puede utilizar cualquier ruta que el propietario del proceso del servidor (postgres
de forma predeterminada) tenga permiso para leer/escribir.
Tenga en cuenta que para el comando meta \copy
del cliente psql se aplican los permisos del usuario local actual.
Gracias por la explicación. – Jeiman
No use el comando COPY con pgAdmin en una máquina con Windows e intente leer un archivo desde su entorno local de Windows. Esto fallará Puede importar un archivo csv de todos modos. Usa la GUI para hacer eso. Haga clic derecho en la tabla deseada y elija la importación ... – R13e