【问题标题】:SSIS importing extra decimal values in to destination sql table from excelSSIS将额外的十进制值从excel导入目标sql表
【发布时间】:2017-11-09 15:50:43
【问题描述】:

我正在尝试将“财务数据”从 Excel 文件导入到 sql 表中。我面临的问题是我的 ssis 包正在增加十进制值。例如,来自 Excel 的 -(175.20) 在 SQL 中被加载为“-175.20000000000005”。 我在目标 SQL 表中使用 nVArChar (20)。附上图片。目标表中最好的数据类型是什么。我做了很多阅读,人们似乎建议使用十进制数据,但是 Package 会为 Decimal 数据类型抛出错误。需要帮助。

【问题讨论】:

    标签: sql-server ssis etl


    【解决方案1】:

    最终在我的 SQL 目标中将数据类型更改为“货币”。然后添加了一个数据转换任务,将“DT_R8”数据类型从 excel 源更改为“货币 [DT_CY]。这解决了问题。我的目的地也可以使用十进制或数字 (16,2) 数据类型,但我只是继续使用货币,它奏效了。

    【讨论】:

      【解决方案2】:

      您可以在数据流任务中使用派生列转换,使用类似 ROUND([GM],2) 的表达式(您可能需要将 GM 替换为您的实际列名)。

      然后您可以转到派生列转换的高级编辑器,并在“输入和输出属性”选项卡上将数​​据类型设置为十进制,比例为 2(查看“派生列输出”下)。

      然后您就可以在 SQL Server 表中使用十进制数据类型。

      【讨论】:

      • 非常感谢克里斯。我明天试一试。会让你知道最终结果。
      猜你喜欢
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多