我很难将SSIS中的某些数据导入SQL Server 2008 R2。
excel源的数据类型设置为DT_NUMERIC
,精度为18
,缩放为2
。
我已经在数据进入OLE DB目的地之前设置了一个数据查看器,它显示了正确格式化的数字,如下图所示:
在SSMS中查询列时,不会出现结果,因为它们要么保留为0.00,要么舍入为1.00。表格字段的数据类型为Decimal(18,2)
,目标高级设置中的输出列也设置为DT_NUMERIC
,精度为18
,标度为{{1 }}。
有人可以帮我解释为什么会这样吗?
答案 0 :(得分:0)
在Excel工作表上,将列标记为带有格式的文本以允许2个小数位,一旦完成,您就可以将数据转换为适当的类型。
在第二个注释中,右键单击Excel源并选择" Advanced Editor"。浏览输入/输出选项卡和第二个" +"标志(从顶部开始),查看列的数据类型。您也可以在此处进行更改以实现精确度。如果我是你并面临问题,我宁愿转换为varchar并将其重新转换为浮动以避免丢失任何小数。
答案 1 :(得分:0)
在我的情况下,创建了一个带有十进制列的临时表,但是我忘了指出精度了,所以SQL Server创建了十进制(18,0)并无声地四舍五入了所有值...