문제

명령 줄을 통해 CSV 파일로 제목으로 PostgreSQL 테이블을 내보내려고하지만 CSV 파일로 내보내지만 제목이 없습니다.

내 코드는 다음과 같이 보입니다.

COPY products_273 to '/tmp/products_199.csv' delimiters',';
도움이 되었습니까?

해결책

COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);

에 설명 된대로 수동.

다른 팁

PSQL 명령 줄에서 :

\COPY my_table TO 'filename' CSV HEADER

마지막에는 반콜론이 없습니다.

단지 테이블 이름 대신 선택된 열 데이터 만 얻기위한 쿼리를 작성할 수도 있습니다.

COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER;

관리자 특권으로

\COPY (select id,name from tablename) TO 'filepath/aa.csv' DELIMITER ',' CSV HEADER;

Postgres에서 파일을 작성할 권한이 없으면 명령 줄에서 쿼리를 실행할 수 있습니다.

psql -U user -d db_name -c "Copy (Select * From foo_table LIMIT 10) To STDOUT With CSV HEADER DELIMITER ',';" > foo_data.csv

이것은 작동합니다

psql dbname -F , --no-align -c "SELECT * FROM TABLE"

내가 사용하는 버전 9.5의 경우 다음과 같습니다.

COPY products_273 TO '/tmp/products_199.csv' WITH (FORMAT CSV, HEADER);

이 솔루션은 저를 사용하여 작동했습니다 \copy.

psql -h <host> -U <user> -d <dbname> -c "\copy <table_name> FROM '<path to csvfile/file.csv>' with (format csv,header true, delimiter ',');"

그녀는 내가 Heroku PG 데이터베이스에 pgsl connect를 사용하여 작동하는 방법을 얻었습니다.

먼저 다음과 같이 UTF8로 인코딩하는 클라이언트를 변경해야했습니다. \encoding UTF8

그런 다음 데이터를 CSV 파일에 버렸습니다.

\copy (SELECT * FROM my_table) TO  C://wamp64/www/spider/chebi2/dump.csv CSV DELIMITER '~'

CSV 파일을 좋아하지 않기 때문에 ~ Delimiter로 사용했지만 일반적으로 TSV 파일을 사용하지만 Delimiter로 ' t'를 추가 할 수는 없으므로 사용했습니다. ~ 드물게 사용되지 않는 문자이기 때문입니다.

'fileablsoutepathwihname'delimiter ','CSV 헤더;

이 U를 사용하면 데이터를 내보낼 수도 있습니다.

여기에 주어진 다른 답변이 실제로 저를 위해 일하지 않았기 때문에이 답변을 게시하고 있습니다. 나는 사용할 수 없었다 COPY 올바른 권한이 없었기 때문에 우편 문자 내에서. 그래서 나는 "내보내기 그리드 행"을 선택하고 출력을 UTF-8로 저장했습니다.

그만큼 psql @Brian이 제공 한 버전도 다른 이유로 저에게 효과가 없었습니다. 그것이 작동하지 않는 이유는 분명히 Windows 명령 프롬프트 (Windows를 사용하고 있었음)가 인코딩 자체와 함께 중간에 가두었기 때문입니다. 나는이 오류를 계속 받았다 :

오류 : "win1252"인코딩에서 바이트 시퀀스 0x81이있는 문자 "UTF8"인코딩과 동일하지 않습니다.

내가 사용한 솔루션은 CSV 파일을 읽고 삽입 문을 내 Postgres 테이블에 직접 발행하는 짧은 JDBC 스크립트 (JAVA)를 작성하는 것이 었습니다. 이것은 효과가 있었지만 인코딩을 변경하지 않았다면 명령 프롬프트도 작동했을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top