【发布时间】:2012-07-29 08:38:57
【问题描述】:
我对 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 更新
我对此进行了更多研究,似乎是具有“频率”或“无”直方图的列导致了问题。那些具有“高度平衡”直方图的人似乎没问题。
【问题讨论】:
-
Test表中ID的数据类型是什么? -
@blinkc,它似乎是:String[DT_STR]
-
@billinkc,我已经编辑了这个问题。请看一看。
-
我的经验表明,由于数据类型不匹配和截断的可能性,它正在抱怨(正如您正确地认为的那样)。我相信无论如何你都可以强制它进行转换,我认为它只是安全的,你必须在你的 SSIS 包中添加一些错误处理。见msdn.microsoft.com/en-us/library/ms141706.aspx
-
@PaulSullivan,您能否解释一下我如何“强制它进行转换”。谢谢。
标签: sql-server oracle ssis etl