Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLite:停止插入:应为n列,但找到m列_Sqlite_Csv_Error Handling_Insert - Fatal编程技术网

SQLite:停止插入:应为n列,但找到m列

SQLite:停止插入:应为n列,但找到m列,sqlite,csv,error-handling,insert,Sqlite,Csv,Error Handling,Insert,我正在使用.import命令将大型csv插入SQLite数据库。不幸的是,有些行在字段的值中包含delimeter。例如,每行的格式如下: id, title, first name, last name, location 但有些行具有如下值: 1, Mr, Bob, Saget, Sydney, Australia 位置字段中的逗号会导致预期的5列错误,但发现6列错误。幸运的是,插入每一行对我来说并不重要,所以我不想插入任何引起此错误的行。这可能吗 使用正则表达式解析csv是最后的选择

我正在使用
.import
命令将大型csv插入SQLite数据库。不幸的是,有些行在字段的值中包含delimeter。例如,每行的格式如下:

id, title, first name, last name, location 
但有些行具有如下值:

1, Mr, Bob, Saget, Sydney, Australia
位置字段中的逗号会导致
预期的5列错误,但发现6列错误。幸运的是,插入每一行对我来说并不重要,所以我不想插入任何引起此错误的行。这可能吗


使用正则表达式解析csv是最后的选择,因为该文件非常大,每次需要导入时可能需要几分钟。

包含分隔符的字段必须正确引用。@CL.好的,但是有问题的行没有正确引用,那么我处理该输入的选项是什么?正确引用或删除它们。(您有
sed
?或支持正则表达式的编辑器吗?)我有权访问
sed
。但是,这是最后的办法,因为文件大于1GB,我需要每天多次运行脚本。SQLite是否有处理此类错误的方法?我觉得很奇怪,它会向我显示一个错误,然后仍然将数据插入表中,而我完全知道它是坏数据;
.import
命令用于导入
.export
ed数据。如果您有不同的格式,请编写自己的导入程序,或转换数据。