我有一个SSIS包,在这里我正在DFT中使用脚本组件从SQL表中的插入中检索错误列和错误描述。
我的代码如下。但是,完成DFT(完成所有步骤)后,程序包将无法继续执行下一个DFT任务,错误为
[SSIS.Pipeline]错误:ID为0的对象不存在。
下面是该组件的代码
我试图删除脚本组件并重新创建它,但这不起作用
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);
IDTSComponentMetaData130 componentMetaData = this.ComponentMetaData as IDTSComponentMetaData130;
Row.ErrorColumnName = componentMetaData.GetIdentificationStringByID(Row.ErrorColumn);
}
错误描述和错误列进入错误表,但程序包不继续。
答案 0 :(得分:0)
我正在DFT中使用脚本组件从SQL表格的插入中检索错误列和错误描述。
如果您正在从OLE DB目标的错误输出中读取数据,并且将Table or View - Fast Load
选项用作Access Mode
,则由于执行批量插入操作,因此无法检索列名。
如果需要获取错误列名称,则不能使用Fast Load
选项,则需要通过选择Table or View
访问模式来执行逐行插入,这会降低插入性能。
如果您不是从OLE DB Destination错误输出中读取,请参考以下文章以获取分步指南: