在批量插入日期期间检测为空

时间:2019-05-21 10:28:06

标签: csv ms-access

在我的一个应用程序中,我正在使用以下批量插入查询将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

1 个答案:

答案 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