디렉토리로 이동하고 코드 페이지를 변경하고 (내 폴더에 자국어로 된 문자가 포함되어 있음) psql에서 데이터베이스를 연 다음 \ copy를 사용하여 DB의 일부 테이블을 내 폴더로 내 보냅니다. 컴퓨터를 종료 한 다음 데이터베이스를 종료하고 명령을 닫으십시오. 수동으로 처리하면 매력처럼 작동하지만 데이터베이스에 들어가면 .bat 파일이 중지됩니다.배치 파일에서 URI를 통해 데이터베이스에 연결 한 후 psql에서 copy를 사용하는 방법은 무엇입니까?
cd C:\Program Files\PostgreSQL\9.6\bin
chcp 1250
psql "postgres://<heres_my_URI>"
\copy <table_name> to 'G:\<path>\name.csv' with
DELIMITER ',' header csv;
\copy <table_name> to 'G:\<path>\name.csv' with
DELIMITER ',' header csv;
\q
exit
.bat 파일을 CSV 파일을 경로로 다운로드하고 그 뒤에 닫고 싶습니다.
<mydatabase_name> =>
을 내가 수동으로
\copy <table_name> to 'G:\<path>\name.csv' with
DELIMITER ',' header csv;
\q
또는
하지만 데이터베이스에 입력 할 때까지 잘 .BAT하고있다, 그럼 그냥 보여줍니다. DB를 종료 한 후, \ copy가 인식 할 수없는 모든 오류를 표시합니다. 어떻게 작동하게합니까? 도움을 주셔서 감사합니다 :)
여전히 다른 여분의 인수로 script.sql을 무시하고 데이터베이스로 진행합니다 ... 무엇이 잘못되었는지 이해할 수 없습니다 ... script.sql은 .bat 파일과 같은 폴더에 있어야합니까? 그럼에도 불구하고 묻습니다. – ThorOdinson
@ThorOdinson : URI에 의해 -f 인수가 사용되었다고 생각한다면'psql -f script.sql ... 다른 인수' –
예! 마침내 효과가있었습니다! 정말 고맙습니다! (방금 script.sql 파일의 경로를 추가하고 인수의 순서를 바꿨습니다.) – ThorOdinson