我正在开发一个 2008R2 SSIS 包,它需要读取 CSV 并使用 Oracle 包将行插入到 oracle 数据库中:
我正在使用“OLE DB 的 Oracle 提供程序”(OraOLEDB.Oracle.1)和“OLE DB 命令”与数据库进行通信。
我可以成功地将我的参数映射到查询并插入行。如果 Oracle 包返回错误,我遇到的问题与捕获来自 oracle 的错误响应有关。
当我将“OLE DB 命令”组件设置为“重定向行”时,将通过管道传输到我的结果集中的行,但错误描述似乎是通用的,并且没有提供与 Oracle DB 产生的实际错误相关的任何信息包边。我得到“命令执行产生错误。”
见截图:
我在脚本组件中使用此代码块并在我的重定向行中添加额外的输出来获得错误描述:
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
Row.ErrorDescription = this.ComponentMetaData.GetErrorDescription(Row.ErrorCode);
}
我知道这不是实际的错误,因为当我将 OLE DB 命令设置为使组件出错而不是重新定向行时,我可以在 Package Progress 选项卡上看到我需要捕获的实际错误。
见截图:
有谁知道捕获这些错误的方法,因为它们似乎已被错误行重定向所吞噬?