2014-03-19 4 views
4

나는 data 테이블 이름 그냥 파일과 같은 세 개의 열이 있습니다SQLite는 수입 csv 파일은

sqlite> .separator , 
sqlite> .mode csv data 
sqlite> .import test.csv data 

를 사용하여 DB를 SQLite는에 csv 파일을 가져올.

파일에는 큰 따옴표를 사용하여 캡슐화 된 문자열 값이 있습니다.

Error: test.csv line 2: expected 3 columns of data but found 4 

가 어떻게 제대로 SQLite는 수입이 값을 만들 수있는 문자열 값의 일부는 하나의 컬럼으로 취급되어야한다 (파일 "Bond\, James"의 실제 예) 그들을 쉼표를 가지고 있지만, SQLite는 오류가 발생합니다?

답변

2

나는 이것이 약간 오래된 것임을 알고 있지만 이것은 관련성 높은 첫 번째 Google 검색 결과이므로 내 솔루션을 공유하고 싶습니다.

다른 구분 기호를 사용하고 값 주변의 따옴표를 제거하십시오. 나 자신이 문제를 경험하고 구분 된 값을 CSV 반대로 SQL 쿼리를 덤프 있도록 훨씬 더 쉽게 내 스크립트를 수정 발견했습니다

sed -i -e 's/","/|/g' -e 's/"$//g' -e 's/^"//g' file.csv 

sqlite> .separator "|" 
sqlite> .import file.csv tablename 
0

.

sqlite3에 CSV 데이터를 가져올 때 쉼표뿐만 아니라 줄 바꿈 문자로 문제가 있습니다.

내가 제안 다음

  • SQL은
  • 가 sqlite3를 위해 쿼리를 SQL과 먹이를 csv로 덤프를 변환 덤프를 생성하는 스크립트를 수정