我之前看到过这个错误,但是通过手动输入值来解决这个问题,但那是4行,这次错误超过100行.
问题是,这个名为Shipto它的列将包含三个内容之一,1位数字,2位数字或单词All.导入对1位和2位数字完全正常,但如果有All,则会导致此错误:
[SSIS.Pipeline]错误:SSIS错误代码DTS_E_PROCESSINPUTFAILED.组件"OLE DB目标"(162)上的ProcessInput方法在处理输入"OLE DB目标输入"(175)时失败,错误代码为0xC0202009.标识的组件从ProcessInput方法返回错误.该错误特定于组件,但错误是致命的,将导致数据流任务停止运行.在此之前可能会发布错误消息,其中包含有关失败的更多信息.
此包获取一个表中的值并将它们插入另一个表中.我查看了它将从中获取值的表,并且该列shipto不为null.
唯一的区别是看两个表的结构.临时表允许该列上的空值,而真实表则不允许.两个表都将列作为a varchar(20).
我在数据流中注意到有一个复选框说明check constraints; 会不会检查这个问题解决了吗?因为列不为null.
感谢您提供的任何帮助,我将发布可能需要的任何其他信息.谢谢.
有几种可能性:
源表中有一个null.目标表不允许该列中的空值.有几种选择.如果您直接从表中使用数据源,请使用SQL命令而在查询中处理null:
SELECT field1,field2,isnull(shipto,'')field3,field4,.... FROM Table
您可以在上面的空字符串中使用您想要的任何内容,以使用更可接受的值替换空值.
如果您不想这样做,您将不得不在目标数据库中允许空值,或者找出源数据库表中存在空值的原因并确保不再发生这种情况.
字段未映射.源中的值未映射到目标字段.
源和目标之间的其他转换是引入NULL值.
| 归档时间: |
|
| 查看次数: |
5881 次 |
| 最近记录: |