Есть ли способ для двойных перевернутых запятых переопределить разделитель с помощью sqlite

#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 для упрощения написания сценариев. Я мог бы попробовать это как побочное назначение. Хотя на данный момент в файле была только одна строка, которая мешала, поэтому я сразу вошел и изменил строку. Я знаю не лучший подход программистов, но эй, что-то должно получиться. 🙂