SSIS, импортирующий процентный столбец из Excel, отображается как NULL в базе данных - PullRequest
0 голосов
/ 03 августа 2020

У меня есть процесс 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», чтобы увидеть, импортирует ли он что-либо из этого столбца, похоже, что это работает (только не для тех процентов, которые мне нужны).

1 Ответ

0 голосов
/ 04 августа 2020

Проблема была вызвана «смешанными типами данных», которые присутствовали в первых нескольких строках моих данных («смешанная» часть - пустые поля), что объясняет, почему одни листы будут работать, а другие - нет.

{ ссылка }

Настройка строки подключения для решения этой проблемы устранила проблему.

...