All,
I am trying to inject a long text entry into a SQLite database, in a TEXT field. This text has new lines in it (i.e. it spans multiple paragraphs).
I can get the new lines to show up if I do the INSERT manually:
INSERT INTO "LOGENTRY" VALUES(5,40,'PLACE','line1
line2
line4
',1283990533315,'4A','TEXT','',NULL);
but if I have the equivalent text in a CSV file and attempt to .import it into the table, I get an error that it’s expecting more columns than exist (as soon as the new line is encountered, the program assumes it’s the end of the input and thus it’s missing columns).
Is this possible? Or is the only way to manually do each INSERT?
Your problem is the csv format: sqlite doesn’t support values containing newlines.
In the sqlite dialect:
Commas separate fields
Double quotes can be used to group a field which contains commas.
New lines delimit records
You either need to escape/remove your new lines, or, use some other more suitable file format.
The following (sed) regular expresion will “delete” unwanted line feeds