ソース システムでデータを同等の数値型にキャストできませんか? これは、先頭のゼロを削除する簡単な方法です。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'
データ変換変換
通貨 [DT_CY] のデータ型が適用された stringCurrency である currencyCurrency という新しい列を作成しました。
結果
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
私はテーブル アクセス モードを使用しないことを完全にサポートしています。一般的には、ソース システムに作業をプッシュすることに賛成ですが、ソース システムで変換が許可されていない場合や、いじくり回さなければならない場合、これは簡単な作業のように思えます。文字列。