Во время массовой вставки дата определяется как ноль - PullRequest
0 голосов
/ 21 мая 2019

В одном из моих приложений я импортирую данные CSV в mt Access db, используя следующий массовый запрос вставки.

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, поскольку для этого поля установлено свойство Requiredустановите в 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 голосов
/ 21 мая 2019

Плохая строка в строке 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...