在我的一个应用程序中,我正在使用以下批量插入查询将CSV数据导入mt Access数据库。
INSERT INTO Log_134_temp ([DATE],[TIME],CH0,CH1,CH2,CH3) SELECT [DATE],[TIME],CH0,CH1,CH2,CH3 FROM [Text;FMT=CSVDelimited;HDR=Yes;DATABASE=C:\tmp].[SAMPLE_1.csv]
查询被执行,并且查询中的所有参数均正确。问题仅在于其中一个csv文件,该文件在执行查询后出现以下错误。
字段'Log_134_temp.date'不能包含Null值,因为 此字段的必需属性设置为True。在输入值 此字段。
导入其他csv文件时没有任何问题。
成功导入的文件和有问题的文件看起来与其格式相同。这让我困惑了一天。
要导入的文件
https://www.dropbox.com/s/amddhzhi6nr24ex/SAMPLE_1_111.csv?dl=0
未导入的文件
https://www.dropbox.com/s/2rrgdf7oor5ptbf/SAMPLE_1_112.csv?dl=0
答案 0 :(得分:0)
第135169行中的错误行:
2019-02-14,16:57:54,310,837,300,650
它包含很多 00 符号。
我通过简单的Python周期发现了这一点:
In [43]: f = read_file(r'...SAMPLE_1_112.csv')
In [44]: li = f.split('\n')
...
In [60]: prev_len = 1
In [61]: for l in li:
...: if not len(l): continue
...: if prev_len != len(l): print(l)
...: prev_len = len(l)
...:
DATE,TIME,CH0,CH1,CH2,CH3
2018-10-03,11:45:44,246,621,250,600
2019-02-14,16:57:54,310,837,300,650
2019-02-14,16:59:01,309,859,300,650