대용량 데이터 복사 시 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를 사용하면 된다는 뜻이다.
psql 사용을 위해 SQL Shell(psql)을 설치 한다.
SQL Shell(psql) : PostgreSQL의 Command Line Interface
설치 후 DB 정보를 입력하여 연결한 후
\copy [스키마.테이블명] from [파일 경로] delimiter [구분자] 형식으로 실행 하면 정상적으로 동작한다.
만약 데이터 Import가 아닌 Export를 원한다면
\copy [스키마.테이블명] to [파일 경로] delimiter [구분자] 를 사용하면 된다.
'DB > RDBMS' 카테고리의 다른 글
[MSSQL] CSV 파일 생성 및 문제 해결 방법 (0) | 2020.04.27 |
---|---|
[PSQL] COPY 작업 시 유용하게 사용했던 명령어 및 설정 (0) | 2020.04.27 |
[MSSQL] OPENQUERY 대용량 DML 작업 시 문제점 (0) | 2020.04.22 |
[MSSQL] OPENQUERY에 변수 사용 시 문제점 및 해결방법 (0) | 2020.04.14 |
[MSSQL] IF-ESLE (0) | 2020.04.10 |