Я считаю, что вам нужно будет обратить внимание на две вещи здесь. Во-первых, вполне вероятно, что ячейки с запятой в них распознаются как строки, и поэтому они будут использовать текстовый квалификатор кавычек. Если вы не настроите это явно в SSIS, SSIS сохранит кавычки, и тогда вы не сможете преобразовать эту строку в числовую. Чтобы подтвердить, в диспетчере соединений проверьте предварительный просмотр. Если ваши числа имеют двойные кавычки, как показано ниже, вам нужно установить квалификатор текста в кавычку.
Снимок перед установкой классификатора текста:
Теперь, если это так, вам нужно перейти в «Общие» и убедиться, что для квалификатора текста установлено значение «», как показано ниже.
После этого вы можете убедиться, что ваш предварительный просмотр исправлен
Проблема, с которой вы столкнулись, предполагает, что вы имеете дело со значениями NULL. Это не тот случай, когда ваш столбец имеет строковый тип, импортированный из плоского файла. Здесь вы имеете дело с пустой строкой. Итак, вам нужно изменить свое выражение, чтобы оно было:
(DT_R8)REPLACE(Col1 == "" ? "0.0000" : Col1,",",".")
Наконец, понимаете ли вы, что замена «,» на «.» приведет к преобразованию «3,00000» в 3.0? Убедитесь, что это ожидаемое поведение.
Выполнение приведенного выше приведет к следующему производному столбцу
person
BICube
schedule
09.12.2019