У меня есть процесс ETL, настроенный для получения данных из электронной таблицы Excel и сохранения их в базе данных с помощью SSIS. Однако один из столбцов в файле Excel отформатирован как процент, и иногда он по ошибке сохраняется в базе данных как значение NULL, как если бы произошла какая-то ошибка перевода.
На фото точный формат, используемый для столбца в Excel.
Формат процентного столбца Excel
Интересно, что эти процентные значения действительно загружаются правильно в некоторые дни, но по какой-то причине один конкретный лист Excel, который мне был приведен в качестве примера этой проблемы, вообще не загружает ни один из них, когда он проходит через Процессор SSIS.
В Excel эти значения будут отображаться как «50,00%», и когда процессор SSIS сможет правильно их преобразовать, он будет отображаться как десятичный эквивалент в базе данных «0,5», что это то, что я хочу вместо значений NULL. Тип данных, который я использую в SSIS для этого, - это строка Unicode [DT_WSTR], и она сохраняется как NVARCHAR в базе данных.
Любое понимание того, почему эти значения иногда не отображаются / не переводятся должным образом? Я пробовал возиться с типами данных в SSIS / SQL Server, но это либо не привело ни к каким изменениям, либо к ошибке. Когда я помещаю тестовые значения в таблицу Excel, такие как «test», чтобы увидеть, импортирует ли он что-либо из этого столбца, похоже, что это работает (только не для тех процентов, которые мне нужны).