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 并导致溢出错误。

我不知道为什么这些值要乘以一千,我当然不想要这种行为。谁能帮我?

4

1 回答 1

2

在此处查看有关数据类型的 SQL 文档DECIMAL

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

社区添加的第一个描述了您的方案,因为您使用的是 (5, 4),所以小数点左侧只能有一个数字。您的最大精度为 5,其中 4 个在小数点右侧,仅在右侧留下一个位置。从而导致你的溢出

于 2013-03-05T13:48:20.597 回答