我正在尝试导入"财务数据"从Excel文件到sql表。我面临的问题是我的ssis包正在递增十进制值。例如 - 来自Excel的(175.20)被加载为" -175.20000000000005"在SQL中。 我在目标SQL表中使用nVArChar(20)。附图像。什么是目标表中最好的数据类型。我做了很多阅读,人们似乎建议使用十进制数据,但是套件会抛出十进制数据类型的错误。请帮助。
答案 0 :(得分:1)
结束将数据类型更改为" Currency"在我的SQL目的地。然后添加了一个数据转换任务来改变" DT_R8"数据类型从excel源到"货币[DT_CY]。这解决了这个问题。也可以在我的目的地中使用十进制或数字(16,2)数据类型但是我只是继续使用货币而且它有效。
答案 1 :(得分:0)
您可以在数据流任务中使用派生列转换,使用类似ROUND([GM],2)
的表达式(您可能需要将GM
替换为您的实际列名称。)
然后,您可以转到派生列转换的高级编辑器,并在“输入和输出属性”选项卡上将比例设置为2的数字类型(在“派生列输出”下查看)。
然后,您就可以在SQL Server表中使用十进制数据类型。