【问题标题】:Incorrect Convert Data from String to Float in SSIS在 SSIS 中将数据从字符串转换为浮点数不正确
【发布时间】:2013-05-27 02:45:13
【问题描述】:

我有一个带有十进制值的 excel 文件,其文本格式类似于

'123.32323 in Column Value 告诉 Microsoft Excel 转换为 Excel 中的数字..

我想将此值作为float 值导入到DT_R8 到SSIS 项目中。我已经创建了带有(DT_R8)[Value] 转换列的派生列,并尝试使用数据转换进行转换,但结果我将值更改为12332323 它不会在那里寻找.

我的本​​地 Excel ID 是印度尼西亚语,其中逗号是 , 和分隔符 .,我已经在 English (United States) 中更改了它,但它仍然是一样的。

如何在 SSIS 中将此文本类型转换为 Float

【问题讨论】:

  • 在 Excel 中 - 选择一个单元格并转到格式化单元格并将数据类型更改为数字并确保小数位不为零。现在尝试在该单元格中手动输入一个浮点值,看看它是否正确显示了十进制值。
  • 您是否尝试在您的 excel 连接管理器中使用 IMEX=1 [附加到连接字符串]?这将把数据作为它的。之后,您可以使用 SSIS 将类型转换为 DT_R8。

标签: ssis


【解决方案1】:

我自己实际上对此有点疯狂。如果 csv 中的数据包含在引号中,当 SSIS 导入 csv 文件时,它会在行的输出中包含引号,因此您实际上必须自己删除结束引号。否则,您实际上是在尝试将引号和数字转换为浮点数。将 CSV 导入的输出传递给派生列控件将对您有用。

在派生列的表达式字段中-> (DT_R4)REPLACE([Column Name],"\"","")

这会删除引号,然后将值转换为浮点数。

【讨论】:

  • 这实际上已在 SSIS 2014 中得到纠正,我认为 2012 年也是如此。您可以指定文本限定符,例如“.
猜你喜欢
  • 2011-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 2020-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多