2015-01-26 1 views
0

파이프 구분 기호가있는 CSV 파일에서 COPY 명령을 사용하여 테이블을 내보내고 있습니다. 컬럼이 거의없고 빈 컬럼이 거의 없습니다. CSV 파일에서 빈 문자열은 ""로 내보내지며 원하지 않습니다.Postgresql Copy - 복사 명령을 사용하여 postgresql에서 데이터를 내보내는 동안 빈 문자열을 null로 처리하는 방법

빈 문자열을 NULL로 처리하는 옵션이 COPY 명령에 있습니까? 나머지는 동안 1가 비어

예를 들어

내가 다섯 개의 열이 널 내 출력은오고있다 :

""||||

미리 감사드립니다.

+0

'COPY' 문을 게시 할 수 있습니까? 'FORCE QUOTE' 옵션으로 호출하고 있습니까? – rchang

+0

여기 내 COPY 성명은 다음과 같습니다 형식을 복사하십시오 (복사 (선택 * 테이블에서) TO '' '|| v_file_name ||' ''WITH DELIMITER '' '|| v_delimiter ||' ''CSV HEADER NULL AS ' ''|| v_blank || '' '); 여기서 v_file_name에는 파일 이름이 포함됩니다. v_delimiter contains | v_blank는 '' – jmrp

답변

0

이미 COPY에서 SELECT 문을 사용하는 경우 마음에 들지 않는 값만 바꾸면됩니다.

copy (select case when col_1 = '' then null else col_1 end as col_1, 
      case when col_2 = '' then null else col_2 end as col_2, 
     ...) 
... 
+0

입니다. 내 백업 옵션입니다. 50 개 이상의 열을 내보내고 있으며 각 열에 CASE를 사용해야합니다. COPY 명령 자체에 플래그가있을 수 있다고 생각했습니다. – jmrp

관련 문제