У меня есть пакет служб SSIS с потоком данных, который принимает источник данных ADO.NET (просто небольшую таблицу), выполняет запрос select * и выводит результаты запроса в плоский файл (я также пытался просто извлечь всю таблицу и не используя SQL select).
Проблема заключается в том, что источник данных извлекает столбец с типом данных Money, и если значение не равно нулю, оно просто отлично попадает в текстовый плоский файл (например, 123.45), но когда значение равно нулю он отображается в плоском файле назначения как «.00». Мне нужно знать, как вернуть ведущий ноль в плоский файл.
Я пробовал различные типы данных для вывода (в Диспетчере соединений с плоскими файлами), включая валюту и строку, но, похоже, это не имеет никакого эффекта.
Я пробовал в своем выделении оператор case, например:
CASE WHEN columnValue = 0 THEN
'0.00'
ELSE
columnValue
END
(все еще приводит к '.00')
Я пробовал варианты на это, как это:
CASE WHEN columnValue = 0 THEN
convert(decimal(12,2), '0.00')
ELSE
convert(decimal(12,2), columnValue)
END
(все еще приводит к '.00')
и
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
(в результате '.0000000000000000000')
Эта глупая маленькая проблема убивает меня. Кто-нибудь может сказать мне, как получить нулевое значение базы данных типа данных Money в плоский файл как «0,00»?