SSIS 経由で Excel ファイルを SQL-Server にインポートします。nvarchar ですべてを取得するための一時テーブルがあります。次に、4 つの列について、文字列を money 型にキャストし、ターゲット テーブルに配置します。
私の一時テーブルでは、これらの 4 つの列の 1 つを X と呼びましょう。X には区切り文字としてカンマがあり、残りにはドットがあります。理由を聞かないでください。SSIS セットのすべてが同じに設定されています。私のExcelでは、区切り文字もコンマです。
したがって、ターゲットテーブルにはすべてがコンマ値になっていますが、X 列はコンマを右に 2 つ移動し、次のようになります。
5370,13の代わりに537013,00。これは、temp および Excel 列の元のセル値です。
これはカルチャのセットアップの問題だと思っていましたが、これらの列のすべてで機能する必要があるかどうかはわかりません。
a) Excel でカンマが表示されているときに、一時テーブルにドット値が表示されるのはなぜですか?
b) どうすればこれを修正できますか? 一時テーブルの「,」をドットに置き換えることはできますか?
アップデート
理由はわかったが解決策は見つからなかったと思う:
Excel のこの X 列では、最初の 3 つのセルは空です。他の 3 つの列はすべて 0 で始まります。X のこれら 3 つのセルを 0 で埋めると、一時テーブルにドットが表示され、ターゲット テーブルに正しい値が表示されます。 . もちろん、エクセルファイルをそのまま使わなければなりません。それに関するアイデアはありますか?