sqlite ошибка импорта csv через командную строку - PullRequest
9 голосов
/ 16 января 2012
$ sqlite3 test.sql
SQLite version 3.6.12
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> create table test (id integer, author_id integer, title varchar(128), name text);
sqlite> .separator ";"
sqlite> .import sqlite.csv test
sqlite.csv line 3: expected 4 columns of data but found 1
sqlite> .separator ';'
sqlite> .import sqlite.csv test
sqlite.csv line 3: expected 4 columns of data but found 1
sqlite> 

Я пытаюсь импортировать таблицу csv с;в качестве разделителя для sqlite, но он не смог найти 4 столбца.Я экспортирую из sql в csv с пометкой «Поместить имена полей в первую строку».Могу я что-то здесь упустить?

первые 5 строк csv

id;"author_id";"title";"poem"       
1;"92";"A Letter From Italy";"Salve magna parens frugum Saturnia tellus     
Magna virm! tibi res antiqu laudis et artis     
Aggredior    sanctos ausus recludere fontes.    
Virg. Geor. 2.  

Ответы [ 3 ]

5 голосов
/ 19 января 2012

Поскольку ваш разделитель содержит только один символ, попробуйте использовать команду разделителя без кавычек вокруг точки с запятой. Итак:

sqlite> .separator ;
sqlite> .import sqlite.csv test
5 голосов
/ 11 июля 2012

Вы не можете импортировать в таблицу с первичным ключом, который вы должны сначала импортировать во временную таблицу.

См. Ответ на этот вопрос SO

1 голос
/ 19 января 2012

Может быть, в одной из ваших строк есть разрыв строки, который не экранирован должным образом?Таким образом, он думает, что 2-я строка заканчивается после «tellus», а затем пытается проанализировать текст, начинающийся с Magna в качестве 3-й строки, и не находит разделителей точки с запятой.Можете ли вы опубликовать скриншот того, как выглядит CSV при открытии в textpad?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...