我在10台笔记本电脑上使用pgAdmin4和postgresql 10。 当我使用COPY FROM导入CSV文件时
COPY BD.CP FROM 'C:\Users\NOMUSER\Desktop\MONDOSSIER\Fichier.csv' with delimiter ';';
PGS返回权限被拒绝的错误消息:
错误:ERREUR:n'a pas pu ouvrir le fichier«C:\ Users \ NOMUSER \ Desktop \ MONDOSSIER \ Fichier.csv»pour une lecture:Permission denied
提示:COPY TO indique au serveur PostgreSQL de lire un fichier。 Vous pourriez vouloir utiliserlafonctionnalité\ copy de psql pour lire en local。
SQL状态:42501
请问有什么问题?我看一个解决方案,但我找不到!非常感谢:)``
答案 0 :(得分:0)
我有完全相同的问题。我读了一些解释,说COPY
无法访问您的文件(我不知道为什么会这样做)。
实际上即使是管理员也不行:/
您应该尝试使用\copy
而不是COPY
来运行命令。我还没有成功,因为我找不到如何运行pgsql
函数。
答案 1 :(得分:0)
好的,所以你(和我)需要更改目标文件夹的用户授权,以便从中复制或复制到。 在安装Postgresql时,Windows不会创建名为postgresql但使用网络服务的新服务。 因此,在文件夹的属性中,您需要将“网络服务”授权为用户,并对文件夹进行“完全控制”。 我已经做到了,现在还可以!
答案 2 :(得分:0)
检查用户是否拥有表格 SELECT / INSERT / DELETE 的权限, COPY 取决于它。 https://www.postgresql.org/docs/current/static/sql-grant.html
答案 3 :(得分:0)
使用 \ copy ,而不只是“ copy”。
COLS=STATE,COUNTY,LINK_ID
psql -d tosm -c "\COPY alias ($COLS) FROM 'alias.txt' (FORMAT CSV, HEADER, DELIMITER('|'))";
答案 4 :(得分:0)
在PostgresSQL 10上存在相同的问题,无法复制到csv或从csv复制。
从我收集的信息来看,服务器无权访问该文件夹,最简单的解决方案是将其放置在可以访问的位置,例如“ C:\ Users \ Public ..”。
编辑: 右键单击数据库公共模式中的表,然后单击导入/导出...,也可以使用pgAdmin的对象浏览器导入/导出数据。