#import #sqlite #separator
#импорт #sqlite #разделитель
Вопрос:
Это мой код sqlite:
create table A(A1 text, A2 text);
.separator ","
import outData.csv A
Я получаю сообщение об ошибке следующим образом:
outData.csv Line 4: expected 2 columns of data but found 4
Вот как выглядит строка 4:
Hallieo,"h, a, and ll"
Я понимаю, почему появляется сообщение об ошибке. Но мне было интересно, может ли кто-нибудь предложить мне способ сохранить — «h, a и ll» как одну запись. Таким образом, можно переопределить команду separator при наличии двойной перевернутой запятой.
Заранее спасибо за любую помощь.
Ответ №1:
Токенизатор, который разбивает строку на отдельные поля, в консольной программе sqlite3 прост и не справляется с этой задачей.
Вам придется написать свою собственную программу для чтения файла построчно, маркирования каждой строки и сохранения в базе данных. Занимательная задача, которая займет день, если вы действительно знаете свой язык программирования.
Сам я использую C и для такого рода вещей использовал бы boost:: tokenizer. http://www.boost.org/doc/libs/1_46_0/libs/tokenizer/tokenizer.htm
Комментарии:
1. Спасибо за ваше предложение. Я люблю такие головоломки, как эти. Я использую python для упрощения написания сценариев. Я мог бы попробовать это как побочное назначение. Хотя на данный момент в файле была только одна строка, которая мешала, поэтому я сразу вошел и изменил строку. Я знаю не лучший подход программистов, но эй, что-то должно получиться. 🙂