gpt4 book ai didi

sqlite - "unescaped "字符”将文本数据导入SQLite时

转载 作者:行者123 更新时间:2023-12-05 01:44:50 26 4
gpt4 key购买 nike

我正在尝试导入一个以分号分隔的文本文件,其中每行都以 CRLF 结尾。第一行包含字段,数据从第 2 行开始:

"Field1";"Field2"
"123";"Foo"
"456";"Bar"

我尝试了以下操作,但失败并显示“input.csv:23:未转义的“字符”:

sqlite3.exe
sqlite> .separator ";"
sqlite> .mode csv MyTable
sqlite> .import input.csv MyTable

知道我做错了什么吗?

谢谢。

最佳答案

对于sqlite,当要导入的数据可能包含双引号字符(")时,不要使用csv模式。读取每个CSV字段的代码csv_read_one_field查找它,当它找到它时,确保它被终止或期望它被引用。

将列分隔符更改为“;”不会有帮助,因为该代码仍将被执行。

另一方面,以ascii模式读取每个字段的代码ascii_read_one_field仅使用列和行分隔符来确定字段内容。

因此,使用 ascii 模式并将列和行分隔符设置为分号和行尾,如下所示:

*尼克斯:

sqlite> .mode ascii
sqlite> .separator ";" "\n"
sqlite> .import input.csv MyTable

window :

sqlite> .mode ascii
sqlite> .separator ";" "\r\n"
sqlite> .import input.csv MyTable

但是,这不会去除数据周围的双引号;它们被视为您数据的一部分。

关于sqlite - "unescaped "字符”将文本数据导入SQLite时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44604644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com