SSIS:来自 csv 文件的数据问题:

Posted

技术标签:

【中文标题】SSIS:来自 csv 文件的数据问题:【英文标题】:SSIS:Issue with data from a csv file: 【发布时间】:2019-09-05 14:42:14 【问题描述】:

CSV 文件中的数据存在问题:我下载了一些 CSV 文件,其中包含一些值,例如:1.21E+11,当值太长时。

如果我转换为 XLS/XLSX 并将字段更改为数字,则可以解决问题,但我想做一些自动化的事情。

【问题讨论】:

使用awk.....! SSIS 不会为您将值转换为数字。在您的目标数据库上转换它或使用自定义脚本任务。 EzLo 你有那个脚本的例子吗? 【参考方案1】:

尝试添加类型为 DT_R8 的派生列并使用以下表达式:

(DT_R8)[InputColumn]

如下图,我测试了如下表达式:

(DT_R8)"1.21E+11"

结果是:

121000000000

【讨论】:

在这种情况下不能正常工作 6.10E+11 转换应该是这个 610300000000 但它是 610000000000 @AlfredoGarcia 6.10E+11 等于 610000000000。但请注意,在 Microsoft Excel 中,如果值存储为 610300000000,则可能会显示为 6.10E+11,您可以在 Excel 中检索初始值,但在 Excel 外部读取此值时,您无法检索精确值。 @AlfredoGarcia 6.10E+11 表示6.10 * 10^10 是的,你说得对,但我需要精确的数字,因为我的系统中存在 ID 或数字 另一件事是从文件中得出的数据类型如何 DT_STR 50 当您转换为 Float 时会出现错误。

以上是关于SSIS:来自 csv 文件的数据问题:的主要内容,如果未能解决你的问题,请参考以下文章

使用 SSIS 从网站 (URL) 读取多个 CSV 文件?

SSIS - 列名作为变量/以编程方式更改

在SSIS中导入CSV:截断错误

SSIS脚本任务获取csv文件的行数

SSIS:将不存在的列添加到 CSV 源

如何在 ssis 中处理之前检查 csv 文件中的文件结尾