在 SSIS 中,我试图从 CSV 文件中读取数据,并将其中的行插入到 OLE DB 数据库中。为此,我做了有史以来最简单的设置,如下所示。
Flat File Source
Derived Column
Data Conversion
OLE DB Destination
当我尝试运行它时,它停止在我的OLE DB 目标处执行,并显示以下错误消息。
输入“OLE DB 目标输入”(51) 上的输入列“金额”(187) 出错。返回的列状态为:“由于可能丢失数据,无法转换该值。”。
失败的列 ( Amount) 当前是类型DT_STR。这似乎是我现在最有信心的类型。
Amount
DT_STR
Flat File Connection
失败的列上使用 的“建议类型”功能。这使得它推荐
Single byte signed int
数据类型。
错误是数据转换失败。“金额”列的数据转换返回状态值 2 和状态文本“由于可能丢失数据,无法转换该值。”。
我试过使用 将
列转换为
DT_I4
.
我尝试使用
将我的列的值转换为
我试过更改我
在源和目标中的值的长度。
根据设置在源或目的地停止。
我尝试使用 Excel 源连接器连接,而不是添加和不IMEX=1添加到连接字符串。没运气。
IMEX=1
我的编程意识告诉我,我完蛋了。我从来没有因为这么简单的事情遇到过这么大的问题。
为什么我不能忽略“潜在”的数据丢失?至少可以说这真的很令人沮丧。
这是一台安装了 SQL Server 2008 的 Windows Server 2008 R2 机器。机器本身通过 Windows Update 完全更新。
我遇到过几次,问题是导出/导入参数中的数据类型不匹配。首先要做的是通过右键单击源或目标并选择高级编辑器来检查这些参数。转到输入和输出属性并检查所有项目的该列的数据类型 - 外部、输出和输入。我通常会在这里看到差异,通常一个是 Unicode (WSTR),另一个是 I4 或 DSTR。