В Excel есть столбец, который должен быть текстовым, но SSIS видит там числовой текст и автоматически делает его плавающим с двойной точностью [DT_R8].
Я могу изменить его вручную в столбцах «Внешний» и «Выход» ветви «Вывод», но «Вывод ошибок» просто не позволяет мне изменить соответствующий столбец.
Error at Extract Stations [Excel Source [1]]: The data type for "output "Excel Source Error Output" (10)" cannot be modified in the error "output column "Group No" (29)".
Error at Extract Stations [Excel Source [1]]: Failed to set property "DataType" on "output column "Group No" (29)".
Я попытался изменить пакет XML. Я попробовал IMEX=1
и , typeguessrow=0
но ничего из этого не зафиксировал мою проблему. Это имеет какое-то решение вообще? Существуют также статьи, предлагающие изменить реестр, чтобы Excel угадывал больше, чем 8 строк по умолчанию, прежде чем угадывать тип данных. Я не хочу идти по этому пути, потому что даже если бы он работал, мне пришлось бы изменить реестр на машине, на которой я планирую запустить пакет.
Например, поле Excel, которое нужно импортировать в поле SQL nvarchar, читает
295.3
296.33
но они записываются в таблицу SQL как
295.30000000000001
296.32999999999998
Я положил в dataviewers и поля показывают
295.3
296.33
вплоть до выполнения, что является правильным, но я предполагаю, что когда он попадает в источник OLE DB Destination, он каким-то образом преобразует его в
295.30000000000001
296.32999999999998
что неправильно.
У меня также есть такие значения, как V321.1 и V213.34, например, которые определенно не являются целыми числами и должны быть сохранены как varchar.