5

我有一个 SSIS 包,它是 3 年前由其他人构建的,但早已不复存在。在过去的一年中,我多次运行它,现在我遇到了这些错误,我不知道为什么会出现这些错误。这个 ssis 包从一个 excel 文档导入到一个临时表。一旦信息在第二次运行时出现在临时表上,它就会从临时表中获取并将其与其他列一起插入到生产表中。这些是我得到的错误:

[OLE DB Destination [162]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has 
occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult:
0x80004005  Description: "Unspecified error".

[OLE DB Destination [162]] Error: There was an error with input column "UserProfileID" (299) on 
input "OLE DB Destination Input" (175). The column status returned was: "The value violated the 
integrity constraints for the column.".

[OLE DB Destination [162]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The
"input "OLE DB Destination Input" (175)" failed because error code 0xC020907D occurred, and 
the error row disposition on "input "OLE DB Destination Input" (175)" 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_PROCESSINPUTFAILED.  The ProcessInput method on 
component "OLE DB Destination" (162) failed with error code 0xC0209029 while processing input 
"OLE DB Destination Input" (175). The identified component returned an error from the 
ProcessInput method. The error is specific to the component, but the error is fatal and will
cause the Data Flow task to stop running.  There may be error messages posted before this with 
more information about the failure.

当我看到“输入列'UserProfileID'出错”时,我在临时表中查看了它,它为空。这是包在运行时应该找到的列之一。但我不知道第二次运行时是否找到了该信息,或者它是否应该在第一次填充。所以我不确定这是否是我遇到的问题。

我很感激我能得到的任何帮助。如果需要任何其他信息,我可以尝试提供。感谢任何可以提供帮助的人。

从 Excel 文件导入临时表 从临时表导入到真实表 数据流

4

2 回答 2

5

表的结构最近是否发生了变化?如果该字段之前没有约束,而现在有,那么您需要解决 SSIS 包中的问题,以将任何不符合约束的记录移动到异常表中,或者您需要找出约束的原因在不适合导入的数据类型时添加。

我要看的下一个地方是 Excel 文件。当一个包运行一个文件一段时间后突然出现问题并且插入数据的表的结构没有改变,那么文件中的数据很可能是错误的。

于 2012-11-20T16:29:18.440 回答
3

我认为信息的重要部分是:

"The value violated the integrity constraints for the column."

您的目的地是否允许该字段中的空值?你可以手动插入行吗?如果取出该字段中具有空值的行,它是否运行成功?

回复:您的评论 我确信文件中没有错误 如果您可以识别由于字段中的空值而不会导入的行,您可以将那个设置发回并询问该人这些行是否有效,因为他们打破了进口?

好的,从您的附加信息中,我可以看到问题是 userProfileID 字段中的空值不允许空值。那么问题就变成了,什么进程应该正确确定 userProfileID 值?是 updateIDs 步骤吗?它是直接从 Excel 输入文件中复制的吗?

于 2012-11-20T15:41:21.470 回答