Я пытаюсь найти решение для этого в течение нескольких дней без каких-либо успехов. Был бы очень признателен за любую помощьВыбрать запрос усекает числовые данные более 10 цифр
Я пытаюсь импортировать файл csv в базу данных Access, но некоторые данные из числового столбца усекаются.
У меня нет MS Access, установленного на моей машине (только предварительно предустановленные окна базы данных реактивных двигателей (msjet40.dll and msjetoledb40.dll
)). Но все остальное прекрасно работает, кроме этой проблемы. Я использую Provider=Microsoft.ACE.OLEDB.12.0
в строке подключения.
Файл csv содержит числовые, а также числовые столбцы в файле. Пока числовой столбец имеет значение меньше, чем около 2140649050
, он выбирает штраф.
SELECT * into ds1 FROM [Text;FMT=Delimited;HDR=YES;DATABASE=" & LFPath & "].[" & LFName & "]
Первоначально я предполагал, что усечение данных происходит при загрузке данных в таблицу. Но данные усекаются во время выбора. Ниже выберите запрос возвращает часть данных усеченных для столбца UPC
SELECT HeadName,[upc code],len([upc code]) as maxlen FROM [Text;FMT=Delimited;HDR=YES;DATABASE=" & LFPath & "].[" & LFName & "]
Вот выход за тот же
HeadName upc code maxlen
TOTAL U.S 2140649030 10
TOTAL U.S 2140649050 10
TOTAL U.S 2140649050 10
TOTAL U.S
TOTAL U.S
TOTAL U.S
TOTAL U.S
TOTAL U.S
Кажется, он устанавливает MaxLength колонки на основе первых нескольких записей. Как я могу предотвратить это.
Доступ отключен из-за отсутствия дополнительной настройки для запуска инструмента в окнах.
Данные не усекаются при установке MS Access (протестировано с Access 2010). Означают ли это, что ACE.OLEDB.12
лучше работает с последней ACE Егине ACECORE.dll
(wiki)
Пожалуйста, предложить какие-либо возможности, чтобы исправить эту проблему без дополнительной нагрузки установки других версий базы данных
Попробуйте использовать файл [schema.ini] (https://msdn.microsoft.com/en-us/library/ms709353 (VS.85) .aspx), чтобы явно определить, что типы столбцов должны быть. Похоже, что драйвер Text предполагает, что столбец имеет длинное целое число и усекает значения, превышающие максимальное значение 32-битного целого числа (~ 2.1E9). –
Число столбцов не фиксировано для файла данных. поэтому единственный вариант, который я вижу прямо сейчас, - это отсортировать файл в порядке убывания на основе этого столбца, а затем загрузить.Но мне интересно, можно ли отсортировать собственно файл csv из vba – xGen