SSIS不能转换,因为数据的潜在损失(SSIS cannot convert because a p

2019-07-03 23:59发布

我有一个从Excel文档导入到数据库表的SSIS包。 我收到以下错误:

[Excel Source [1]] Error: There was an error with output column "ShipTo" (47) on output
"Excel Source Output" (9). The column status returned was: "The value could not be 
converted because of a potential loss of data.".

[Excel Source [1]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The
"output column "ShipTo" (47)" failed because error code 0xC0209072 occurred, and the
error row disposition on "output column "ShipTo" (47)" specifies failure on error. An
error occurred on the specified object of the specified component.  There may be error
messages posted before this with more information about the failure.

[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method
on component "Excel Source" (1) returned error code 0xC0209029.  The component returned
a failure code when the pipeline engine called PrimeOutput(). The meaning of the
failure code is defined by the component, but the error is fatal and the pipeline 
stopped executing.  There may be error messages posted before this with more
information about the failure.

我做阅读和发现的文章,以确保我的数据类型相匹配,并且我已经做到了。 在Excel中的文档,有184行,并在在这些错误(SHIPTO)中列出的列都具有相同的价值,这是“全部”。 我就遇到了这个上次我跑,但它只有4行即有“全部”,所以我只是手动输入这些值,但不会是非常有效的这段时间。

在目标表中,列SHIPTO是VARCHAR(20),所以我不认为规模是一个问题是它是三种情况之一:1个位数,2位数,或者所有的单词。

有没有人有任何其他想法,我能试试吗? 任何帮助是极大的赞赏。 由于任何人都可以提供任何帮助。

Answer 1:

当你第一次设置了这个包,我猜测,要么一个或两位数字是在SHIPTO列的第一个值。 你的包从Excel中读取拿起一个数值类型为输入字段和单词“ALL”失败的包,因为该字段的输入规格为数字。 有几种方法可以事先解决这个问题,但在事后修复它,最简单的方法是右键单击Excel源,并选择显示高级编辑器...在那里,选择表示输入和输出属性选项卡。 在该对话框中的输入和输出部分的最上部,找到列SHIPTO。 你将不得不深入找到它。 数据类型设置为“串[DT_STR]”和长度为20。

单击确定,然后尝试再次运行你的包。



Answer 2:

我有同样的问题,在单一列的多个数据类型的值,包负载仅数字值。 保持所有更新它为空。

为了解决这个问题改变Excel数据类型是溶液中的一个。 在Excel中复制列数据 ,并在不同的文件粘贴。 删除列插入新列文本数据类型和粘贴在新列复制的数据。

现在,在SSIS包删除并重新创建Excel的源和目标表更改列数据类型为varchar。

这将工作。



Answer 3:

对我来说,只是删除从SSIS的OLE DB源并重新添加。 成功了!



Answer 4:

试试这一个,因为它为我工作:

SSIS -该值不能因为数据的潜在损失的转换



Answer 5:

这可能不是最好的方法,但如果一切都失败了,你可以忽略转换错误。 该矿的空值不正确转换的问题,所以我只是忽略了错误和日期进来的日期和空值排在空的,所以没有数据质量问题 - 不,这将始终是这种情况。 要做到这一点,右键点击你的源,单击编辑,然后错误输出。 去那个传给你节哀列,并在错误更改为忽略失败。



文章来源: SSIS cannot convert because a potential loss of data
标签: ssis