2017-09-05 16 views
2

私はSSISを使用しており、固定幅のファイルがフラットです。文字列として引き渡されるSQL DBテーブルを取得しています。それは0000531164となり、5311.64としてSQL DBに書き込む必要があります。文字列の小数点がSSISで変換される

私は派生列を使用して0を削除していますが、追加する必要があるかどうかはわかりません。想定された小数を通貨に適切に変換する方法があるかどうかを確認します。

Current expression = (DT_WSTR,50)(DT_I8)(SUBSTRING(<Table Name>,21,16)) 
+0

100で割ります。 – EoinS

答えて

0

もう一つの方法は、SQL Serverの側で、その後、STUFFだけCASTそれを使用することです。派生列に

declare @var varchar(64) = '0000531164' 

select cast(stuff(@var,len(@var) - 1,0,'.') as decimal(32,2)) 
0

(DT_CY)([FieldName])/100 
0

私はこの時点で必要とされたもの、それを説明した(または完全に理解される)とは思いません。私は同じファイル内にクライアントレベルとアカウントレベルを持っている固定幅のファイルを持っています。だから、それらは条件付き分割を使用してパッケージ内で分離されています。適切な価値を得るために。私はこの式(DT_CY)(SUBSTRING(Filler、37,11)+ "。+ SUBSTRING(Filler、48,2))を使用して終了しました。ここで、" Filler "は固定幅の値で、数値は開始固定幅ファイル

このスレッドは、このスレッドをベースラインに役立てていました。皆さん、ありがとうございました。

関連する問題