Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 具有平面文件源的SSIS包导致溢出错误_Sql Server_Ssis - Fatal编程技术网

Sql server 具有平面文件源的SSIS包导致溢出错误

Sql server 具有平面文件源的SSIS包导致溢出错误,sql-server,ssis,Sql Server,Ssis,我有一个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:

我有一个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被定义为十进制(5,4)。包执行9行,然后引发错误。当我检查数据库中插入的数据时,前9行中Col2处的值为1.0000、2.0000、3.0000。。。直到9.0000。在第10行,它尝试插入10000,并导致溢出错误


我不知道为什么这些值要乘以1000,我当然不希望出现这种行为。有人能帮我吗?

请参阅
DECIMAL
datatype上的SQL文档:


第一个社区添加描述了您的场景,因为您使用的是(5,4),所以小数点左边只能有一位数字。最大精度为5,其中4个在小数点右侧,只在右侧留下一个点。因此导致溢出的是数据库1000、2000、3000中的值,还是1.0000、2.0000、3.0000?对不起,它们是1.0000、2.0000、3.0000。我将编辑这个问题。所以,我可以将数据库列更改为十进制(8,4)或类似的内容,或者将输入文件的值从0.0001更改为9.9999,对吗?你能想出其他的解决方案吗?你可以把它改成字符串或int,我不知道你为什么要把这些值塞进小数点