ADO.NET データ ソース (小さなテーブルのみ) を受け取り、select * クエリを実行し、クエリ結果をフラット ファイルに出力するデータ フローを備えた SSIS パッケージがあります (テーブル全体をプルすることも試みました)。 SQL select を使用しない)。
問題は、データ ソースが Money データ型の列を取得し、値が 0 でない場合はテキスト フラット ファイルに問題なく ('123.45' のように) 取り込まれますが、値が 0 の場合は表示されることです。宛先フラット ファイルでは「.00」として。先頭のゼロをフラット ファイルに戻す方法を知る必要があります。
通貨や文字列など、(フラット ファイル接続マネージャーで) 出力用にさまざまなデータ型を試しましたが、効果がないようです。
次のように、select で 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
(結果は「.000000000000000000」)
このばかげた小さな問題は私を殺しています。ゼロの Money データ型データベース値を「0.00」としてフラット ファイルに取得する方法を誰か教えてもらえますか?