0

次の形式のフラット テキスト ファイルから読み取る SSIS パッケージがあります。

"Col1";"Col2";"Col3";"Col4";"Col5"
2012-06-18 00:00:00;0001;"99";"311";"0001"
2012-06-18 00:00:00;0002;"99";"311";"0002"
2012-06-18 00:00:00;0003;"99";"311";"0003"
2012-06-18 00:00:00;0004;"99";"311";"0004"
2012-06-18 00:00:00;0005;"99";"311";"0005"
2012-06-18 00:00:00;0006;"99";"311";"0006"
2012-06-18 00:00:00;0007;"99";"311";"0007"
2012-06-18 00:00:00;0008;"99";"311";"0008"
2012-06-18 00:00:00;0009;"99";"311";"0009"
2012-06-18 00:00:00;0010;"99";"311";"0010"

そして、同じ列を持つデータベース テーブルにデータを挿入します。データベースでは、Col2 は DECIMAL(5,4) として定義されています。パッケージは 9 行を実行した後、エラーを発生させます。データベースに挿入されたデータを確認すると、最初の 9 行の Col2 の値は、1.0000、2.0000、3.0000、... 9.0000 までです。10 行目で 10000 を挿入しようとして、オーバーフロー エラーが発生します。

値が 1000 倍される理由がわかりません。また、この動作が望ましくないことは確かです。誰でも私を助けることができますか?

4

1 に答える 1

2

DECIMALここで、データ型に関する SQL ドキュメントを参照してください。

http://msdn.microsoft.com/en-us/library/ms187746.aspx

最初の Community Additions は、(5, 4) を使用しているため、小数点の左側に 1 桁しか持てないため、シナリオを説明しています。最大精度は 5 で、そのうちの 4 つは小数点の右側にあり、右側には 1 つのスポットしかありません。したがって、オーバーフローを引き起こします

于 2013-03-05T13:48:20.597 に答える