多个SSIS包错误

时间:2012-11-20 15:37:34

标签: ssis

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

[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'错误”时,我在临时表中查看它并且它为空。这是程序包运行时应该找到的列之一。但我不知道是否在第二次运行时找到了该信息,或者它是否应该在第一次填充时。所以我不确定这就是我遇到的问题。

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

Importing from Excel File to temp table Importing from Temp table to real table Data Flow

2 个答案:

答案 0 :(得分:4)

桌子的结构最近有变化吗?如果该字段之前没有约束,并且现在有一个约束,那么您需要解决SSIS包中的问题,将任何不符合约束的记录移动到异常表,或者您需要找出约束为什么在不适合导入的数据类型时添加。

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

答案 1 :(得分:3)

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

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

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

重新:你的评论 我确信的文件没有错误 如果您可以识别由于字段中的空值而无法导入的行,您是否可以发送该集合并询问该行是否有效,因为它们会导致导入?

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