Столбец "Производные службы SSIS" - проблема с приведением типов - PullRequest
2 голосов
/ 04 августа 2020

Я очень новичок в SSIS, у меня есть таблица SQL, и я хочу загрузить данные в десятичный (10,2) столбец, но файл .csv в качестве исходного файла содержит значение --, так что я пытаюсь заменить значение -- на 0.00 с использованием производного столбца и выражения

Я изменил вывод Flat File Source - Output Column на Unicode string [DT_WSTR]

Выражение для нового производного столбца это:

[estimated-order-handling-fee-per-order] == "--" ? (DT_DECIMAL,2)"0.00" : (DT_DECIMAL,2)[estimated-order-handling-fee-per-order]

Вывод производных столбцов - Вывод столбцов установлен на decimal [DT_DECIMAL]

SSIS принимает все это, но выдает ошибку при запуске пакета, как показано ниже для производного столбца

[Производный столбец [2]] Ошибка: код ошибки SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. «Производный столбец» завершился неудачно, потому что произошла ошибка с кодом 0xC0049063, а размещение строки с ошибкой на «Производный столбец.Outputs [производный столбец] .Columns [расчетный-порядок-обработка-плата-за-заказ-производный]» указывает сбой при ошибке . Произошла ошибка в указанном объекте указанного компонента. Перед этим могут быть опубликованы сообщения об ошибках с дополнительной информацией об ошибке.

Может ли кто-нибудь помочь мне с этим преобразованием?

Спасибо.

1 Ответ

2 голосов
/ 07 августа 2020

Думаю, ошибка могла быть вызвана пустыми или нулевыми значениями. Также попробуйте использовать тип данных DT_NUMERIC вместо DT_DECIMAL, как показано ниже:

REPLACE([estimated-order-handling-fee-per-order],"--","") == "" ? (DT_NUMERIC,10,2)"0.00" : (DT_NUMERIC,10,2)[estimated-order-handling-fee-per-order]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...