【发布时间】:2013-03-14 20:55:56
【问题描述】:
我正在使用 SQL Server 导入和导出向导从 csv 文件导入数据以附加到我现有的 SQL Server 表中。
因此,要将 csv 文件中的数据附加到我的 SQL Server 表中,在Choose a Data Source 窗口中,我要确保我的 csv 数据源中的每一列都具有与我的 SQL Server 表列相同的数据类型。
但是,我在导入时总是会出错。
错误 0xc02020a1:数据流任务 1:数据转换失败。数据 “成熟度(小时)”列的转换返回状态值 2 和状态 文本“由于潜在的损失,无法转换该值 数据。”。(SQL Server 导入和导出向导)
错误 0xc0209029:数据流任务 1:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREON错误。 “输出列”成熟度 (小时)" (42)" 失败,因为发生错误代码 0xC0209084,并且 “输出列“成熟度(小时)”(42)上的错误行处置指定 错误失败。指定对象发生错误 指定的组件。在此之前可能会发布错误消息 提供有关失败的更多信息。 (SQL Server 导入和 导出向导)
我的 SQL Server 表有 Maturity(小时)作为 int 数据类型。
对于我的 csv 文件,在 SQL Server 导出/导入向导中,我为 Maturity(小时)选择了 DT_I4,这相当于 SQL Server 中的 int 数据类型。在过去的 3 个小时里,我仍然无法摆脱该错误。
关于如何解决此问题的任何线索?
【问题讨论】:
-
除了数据类型之外,所有字段的长度是否也相同?
-
您好罗恩,感谢您的评论。从确保 SQL 端和 csv 文件中每个字符串字段的字段大小开始,如何确保 int 列的字段大小?
-
我不确定您的 csv 文件中的值是否必须严格为 int。我会尝试将列类型更改为数字并指定精度。
-
我建议你分而治之你的CSV文件,找到有错误的数据行。您可能会发现一些错误数据,其数字太大而无法放入 INT4
-
2.将错误行重定向到文本文件,而不是拆分源文件。
标签: sql-server-2008 ssis sql-import-wizard