SSIS - 由于潜在的数据丢失,无法转换该值

时间:2012-07-31 14:31:53

标签: sql-server oracle ssis etl

我对SSIS比较陌生。我正在尝试使用Microsoft OLEDB for Oracle从Oracle数据库中提取信息,我正在使用此查询:

SELECT ID FROM Test

我收到一条错误消息:the value cannot be converted because of a potential loss of data。如果我将查询更改为以下内容,则可以正常运行:

SELECT '1' FROM Test

我认为它失败了,因为ID不是整数。但是,平面文件连接管理器显示OutputColumnWidth为50.我做错了什么?

格林尼治标准时间16:30更新
我已经对此进行了一些研究,看起来这些列的“频率”或“无”的直方图导致了这些问题。直方图“高度平衡”的那些似乎没问题。

1 个答案:

答案 0 :(得分:39)

这是很常见的事情。在许多情况下,从无法确定列的元数据的另一类系统导入ssis的默认值是默认为str(50)。由于您尝试将其推入单字符列,因此它假定您可能会丢失数据。只需右键单击并选择“显示高级编辑器...”

即可进入源组件

然后导航到最后一个选项卡(输入和输出属性)

单击“OLE DB源输出”旁边的+

单击“输出列”旁边的+

突出显示ID列

滚动到对话框右侧的长度数据类型属性,并将其从50更改为1.