탭으로 구분 된 CSV 파일의 경우 이 아니며은 따옴표로 묶여 있습니다. 여기서 필드 데이터에는 작은 따옴표, 큰 따옴표, 파이프 및 백 슬래시와 같은 문자가 포함될 수 있습니다.Postgres COPY 명령에서 CSV 형식으로 따옴표 처리를 해제 할 수 있습니까?
샘플 데이터는 다음과 같이 할 수 있습니다
1 2 "ba$aR\eR\ 18
내가 COPY 문을 사용하여 포스트 그레스에이 데이터를 가져올.
내가 대신 필드 분리 뒤에 백 슬래시 "탭을 탈출"로 포스트 그레스는 백 슬래시 + 탭을 취급하고 있기 때문에 오류 psql:-:1: ERROR: missing data for column
를 얻을 수
COPY <tablename> FROM <filename> NULL AS '';
사용이 가져올
. 그래서 나는 COPY 연산자의 "CSV 형식"을 사용하여 전환과 같이 :COPY <tablename> FROM <filename> WITH CSV DELIMITER E'\t' NULL AS '';
지금 psql:-:1: ERROR: value too long for type character varying(254)
분명히 새로운 오류에게있어 그것은 시작에 큰 따옴표를 해석 때문에 필드 래핑 문자로 필드 3의.
내 데이터가 이 아니고이 전혀 지정되지 않도록 지정하려면 어떻게해야합니까?
왜 답변으로 당신의 해결 방법을 게시하지 :
COPY
이후, 당신은
tr
의 출력을 파이프로 I/O에 미치는 영향을 완화 할 수STDIN
에서 읽기 지원? –팁 주셔서 감사합니다! –
[PostgreSQL로 CSV 파일을 가져올 때 인용 부호 무시?] (http://stackoverflow.com/questions/7376322/ignore-quotions-marks-when-importing-a-csv-file-into-postgresql) –