2016-09-06 3 views
1

내가 내 바탕 화면에 CSV로 내 포스트 그레스 테이블을 수출하려고 CSV로하고이 오류 얻을 : 이것은 내 쿼리입니다수출 포스트 그레스 테이블

ERROR: could not open file "C:\Users\blah\Desktop\countyreport.csv" for writing: Permission denied
SQL state: 42501

내가 올바른 구문은 생각

COPY countyreport TO 'C:\\Users\\blah\\Desktop\\countyreport.csv' DELIMITER ',' CSV HEADER; 
+0

가능한 [PostgreSQL에서 PL/pgSQL 출력을 CSV 파일로 저장] (http://stackoverflow.com/questions/1517635/save-pl-pgsql-output-from-postgresql-to-a-csv) -file) – iainn

+0

'psql'에서 이것을 실행하면'\ copy'가'copy'가 아니기를 원합니다. –

답변

1

사용자 설명서에 따르면

Files named in a COPY command are read or written directly by the server, not by the client application.

https://www.postgresql.org/docs/current/static/sql-copy.html

,

일반적인 실수는 파일 시스템 접근이 (클라이언트) 사용자의 접근이라고 믿는 것이지만 그렇지 않습니다. PostgreSQL 서버를 자체 사용자로 실행하는 것은 정상입니다. 따라서 서버가 수행하는 작업은 클라이언트와 다른 OS 사용자로 수행됩니다. 서버는 대개 OS 사용자 postgres으로 실행됩니다.

로컬 컴퓨터에서 서버를 실행한다고 가정하면 가장 간단한 방법은 postgres에 홈 디렉터리 또는 데스크톱에 대한 액세스 권한을 부여하는 것입니다. 이것은 홈 디렉토리의 Windows 보안 설정을 변경하여 수행 할 수 있습니다.

당신이하기 전에 .... 멈추고 생각해보십시오. 이게 너가 찾고있는거야? 서버가 개발중인 경우 항상 사용자의 시스템에서 실행됩니다. 그렇지 않다면 stdout에 쓰려면 COPY을 사용해야 할 수도 있습니다. See the manual for information on this.