Вы не можете преобразовать данные в числовой эквивалентный тип в исходной системе? Это должен быть быстрый способ отбросить ведущие нули. SELECT CAST(myCurrency AS decimal(18,2)) AS leadingZerosDropped FROM myTable
В противном случае, мертвый простой способ SSIS сделать это - использовать задачу преобразования данных и привести ее к числовому типу (DT_CY / Currency или DT_Numeric / Numeric работали просто отлично)
Исходный запрос
SELECT '000000111.11' AS stringCurrency
UNION ALL SELECT '0.22'
UNION ALL SELECT '03.33'
UNION ALL SELECT '004.44'
UNION ALL SELECT '0005.55'
UNION ALL SELECT '00000000000000000006.66'
Преобразование данных преобразования
Я создал новый столбец currencyCurrency, который представлял собой stringCurrency с примененным типом данных валюты [DT_CY].
Результаты
stringCurrency currencyCurrency
000000111.11 111.11
0.22 0.22
03.33 3.33
004.44 4.44
0005.55 5.55
00000000000000000006.66 6.66
Я полностью поддерживаю не использовать режим доступа к таблице, и в целом я поддерживаю перенос работы на исходную систему, но это кажется маловероятным, если исходная система не позволяет преобразование или если вам приходится прибегать шутить со строками.