2016-11-04 1 views
2

데이터를 Postgres 데이터베이스로 가져옵니다. 가져올 테이블에는 날짜가있는 두 개의 열이 포함됩니다.postgres csv date null 가져 오기 오류

그러나 업로드하는 CSV 파일의 일부 날짜 필드에는 값이 비어 있습니다.

표는 다음과 같습니다

dot_number bigint, 
legal_name character varying, 
dba_name character varying, 
carrier_operation character varying, 
hm_flag character varying, 
pc_flag character varying, 
... 
mcs150_date date, 
mcs150_mileage bigint, 

데이터는 다음과 같습니다 : 나는 시도

1000045,"GLENN M HINES","","C","N","N","317 BURNT BROW RD","HAMMOND","ME","04730","US","317 BURNT BROW RD","HAMMOND","ME","04730","US","(207) 532-4141","","","19-NOV-13","20000","2012","23-JAN-02","ME","1","2" 
1000050,"ROGER L BUNCH","","C","N","N","108 ST CHARLES CT","GLASGOW","KY","42141","US","108 ST CHARLES CT","GLASGOW","KY","42141","US","(270) 651-3940","","","","72000","2001","23-JAN-02","KY","1","1" 

이 일을 :

COPY CC FROM 'C:\Users\Owner\Documents\FMCSA Data\FMCSA_CENSUS1_2016Sep.txt' DELIMITER ',' CSV HEADER NULL ''; 

을하지만이 오류가 발생합니다 :

ERROR: invalid input syntax for type date: "" CONTEXT: COPY cc, line 24, column mcs150_date: "" ********** Error **********

ERROR: invalid input syntax for type date: "" SQL state: 22007 Context: COPY cc, line 24, column mcs150_date: ""

이것은 매우 간단하지만 온라인에서 찾은 해결책 중 어느 것도 작동하지 않았습니다.

+0

데이터는 어떻게 생겼습니까? 나는 그것이 텍스트 한정자로서 따옴표를 포함한다고 가정한다. – Nicarus

+0

맞습니다. 1000004, "RAY TRUCKING LLC", "A", "N", "WARWICK", "GA", "31796", "US", "01-JUL- 16, 83000, 22-JAN-02, GA, 1, 1 mcs150_date는 마지막 날짜 필드입니다. –

답변

1

당신은과 같이, ""NULL으로 해석 될 수 있도록하는 QUOTE 문자를 지정해야합니다

COPY CC FROM 'C:\Users\Owner\Documents\FMCSA Data\FMCSA_CENSUS1_2016Sep.txt' DELIMITER ',' CSV HEADER QUOTE '"' NULL ''; 

QUOTE '"'

가 추가되었다.

문서는 : https://www.postgresql.org/docs/current/static/sql-copy.html

+0

감사합니다. 하지만 같은 오류 메시지가 나타납니다. 테이블이 올바르게 설정되지 않았습니까? 나는 잘 모르겠다. –

+0

가능한 경우 테이블 정의와 데이터 몇 줄을 포함하도록 게시물을 업데이트하십시오. – Nicarus

+0

위의 내용을 추가했습니다. –

0

나는 텍스트로 수입 한 후 올바른 유형에 따라 테이블을 변경 끝났다.