Postgresql에 제목이 있는 CSV로 테이블을 내보내는 방법은 무엇입니까?
Postgre를 내보내려고 합니다.명령줄을 통해 CSV 파일로 제목이 지정된 SQL 테이블을 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"
를 사용하는 가장 간단한 방법은 다음과 같습니다.--csv
플래그:
psql --csv -c "SELECT * FROM products_273" > '/tmp/products_199.csv'
사용하는 버전 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 파일을 좋아하지 않기 때문에 보통 TSV 파일을 구분 기호로 사용했는데, '\t'를 구분 기호로 추가할 수 없어서 거의 사용하지 않는 문자이기 때문에 ~를 사용했습니다.
복사 명령은 제한되지 않습니다.제한되는 것은 출력을 TO에서 STDOUT를 제외한 다른 곳으로 유도하는 것입니다.그러나 \o 명령을 통해 출력 파일을 지정하는 데는 제한이 없습니다.
\o '/tmp/products_199.csv';
COPY products_273 TO STDOUT WITH (FORMAT CSV, HEADER);
'fileablsoutepathwinname' 구분 기호 ', csv 헤더에 복사(내보낼 모든 sql 쿼리 데이터);
이를 사용하여 데이터를 내보낼 수도 있습니다.
여기에 제시된 다른 답변들이 저에게 실제로 효과가 없었기 때문에 이 답변을 올립니다.사용할 수 없습니다.COPY
올바른 권한이 없었기 때문에 Postgres 내에서.그래서 " 그리드 행 내보내기"를 선택하고 출력을 UTF-8로 저장했습니다.
그psql
@Brian이 준 버전 또한 다른 이유로 나에게 효과가 없었습니다.작동하지 않는 이유는 Windows 명령 프롬프트(Windows를 사용하던 중)가 자체적으로 인코딩을 간섭했기 때문입니다.다음 오류가 계속 발생했습니다.
오류: "WIN1252" 인코딩에 바이트 시퀀스가 0x81인 문자가 "UTF8" 인코딩에 해당하지 않습니다.
제가 사용하게 된 해결책은 CSV 파일을 읽고 Postgres 테이블에 직접 삽입문을 발행하는 짧은 JDBC 스크립트(Java)를 작성하는 것이었습니다.이것은 효과가 있었지만 인코딩을 변경하지 않았다면 명령 프롬프트도 효과가 있었을 것입니다.
사용해 보십시오. "제품 복사_273 FROM '\tmp\products_199.csv' DELMITER ', CSV HEADER"
pgAdmin
▁just▁다▁like▁your를 사용할 때와 마찬가지로 질의문을 강조 합니다.F5
실행하고 누르다F9
CSV를 저장할 위치를 선택할 수 있도록 파일 브라우저가 열립니다.
Azure Data Studio를 사용하는 경우 지침은 다음과 같습니다. Azure Data Studio: CSV로 저장합니다.
이것이 보편적인 해결책이 아니라는 것은 알지만 대부분의 경우 손으로 파일을 잡고 싶을 뿐입니다.
언급URL : https://stackoverflow.com/questions/1120109/how-to-export-table-as-csv-with-headings-on-postgresql
'programing' 카테고리의 다른 글
SQL Server에서 MongoDB로 이동해야 하는 이유와 반대하는 이유 (0) | 2023.05.15 |
---|---|
심층 복제 개체 (0) | 2023.05.15 |
WPF 컨트롤의 여백 속성의 일부만 바인딩 (0) | 2023.05.15 |
다른 테이블의 필드에서 한 테이블의 SQL 업데이트 필드 (0) | 2023.05.15 |
Python의 함수 체인 (0) | 2023.05.15 |