본문 바로가기

psql2

[PSQL] COPY 작업 시 유용하게 사용했던 명령어 및 설정 앞서 포스팅한대로 COPY작업 자체는 잘 된다. 하지만 생각지도 못한 부분에서 많은 문제가 발생했다. 1. 한글깨짐 역시나 한글 깨짐 방지는 필수인것 같다. copy 실행 전 SQL Shell의 인코딩을 UTF-8로 변경하면 된다. set client_encoding to 'UTF8'; 2. 구분자 문제 나 같은 경우는 MSSQL에서 데이터를 CSV로 생성 후 PSQL에서 COPY했다. 이때 구분자를 ,을 이용하였는데 데이터 안에 해당 구분자가 들어 있다면 데이터의 , 마저도 구분자로 인식하여 데이터를 컬럼단위로 잘라버렸다. 즉 원래 컬럼이 10개라면 11개가되는 현상이 발생, 정상적으로 실행이 안된다. 이전 포스팅에서 설정한 delimiter 옵션을 이용하여 구분자를 \t, ; 등 상황에 맞게 변경해서.. 2020. 4. 27.
[PostgreSQL] COPY 사용 불가 (SQL Error 42501) 대용량 데이터 복사 시 CSV파일 형태로 저장 후 COPY 명령어를 통해 읽어온다. 하지만 PostgreSQL에서 COPY를 사용하면 must be superuser to copy to or from a file 이라는 에러와 함께 실행되지 않는 경우가 있다. 에러를 보면 파일 접근 관련 권한 문제로 보이는데 로컬 환경에만 작업한다면 괜찮지만 따로 분리된 다른 서버의 DB 사용 시 파일 접근 권한 문제를 마음대로 변경할 수 없다. 따라서 다른 방법을 찾아야만 했는데 다행히 에러문구 밑에 힌트가 적혀있었다. Hint : Anyone can COPY to stdout or from stdin. psql's \copy command also works for anyone. 즉, psql의 \copy를 사용하면.. 2020. 4. 27.