首先,让我澄清这不是一个重复的问题,也不是这个问题的潜在重复。我已经尝试过在StackOverflow和DBA Stack Exchange上解决此问题的每个单个变体的所有答案,但是没有任何运气。
在过去的两天里,我一直在努力解决这个问题(每天大约工作7个小时),即使在谷歌搜索问题之后,似乎也没有其他人对我的问题有完全相同的解决方案。
我想做什么?
在SSIS中,我试图从CSV文件中读取内容,并将其中的行插入到OLE DB数据库中。为此,我进行了有史以来最简单的设置,如下所示。
Flat File Source
-读取CSV行。Derived Column
-目前不执行任何操作(仅在此处进行实验)。Data Conversion
-目前不执行任何操作(仅在此处进行实验)。OLE DB Destination
-将行存储在数据库中。
当我尝试运行它时,它将停止在我的OLE DB目标上执行,并显示以下错误消息。
输入“ OLE DB目标输入”(51)上的输入列“金额”(187)出错。返回的列状态为:“由于潜在的数据丢失,无法转换该值。”。
失败(Amount
)的列当前为类型DT_STR
。这似乎是我目前最信任的类型。
我尝试了什么?
- 我尝试在
Flat File Connection
失败的列上使用“建议类型”功能。因此,建议使用Single byte signed int
数据类型。- 在我的平面文件源处停止。
- 错误是数据转换失败。列“金额”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值”。
- 我尝试使用
Derived Column
将列转换为DT_I4
。- 停在我的派生列。
- 错误是数据转换失败。列“金额”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值”。
- 我尝试使用将该
Data Conversion
列的值转换为DT_I4
。- 停在我的
Data Conversion
。 - 错误是数据转换失败。列“金额”的数据转换返回状态值2和状态文本“由于潜在的数据丢失,无法转换该值”。
- 停在我的
- 我尝试更改
DT_STR
源和目标中我的值的长度。- 根据设置在源或目的地停止。
- 我尝试使用Excel Source连接器进行连接,而在连接字符串中不添加或不
IMEX=1
添加。没运气。
我的编程意识告诉我,我很困惑。我从来没有遇到过这么简单的大问题。
为什么我不能仅仅忽略数据的“潜在”损失?至少可以说这真令人沮丧。
我的系统
这是装有SQL Server 2008的Windows Server 2008 R2计算机。机器本身通过Windows Update进行了完全更新。
Amount
什么?
Amount
列。截屏,请用此图片更新您的问题。