【发布时间】:2016-11-11 09:01:38
【问题描述】:
这几天我一直在尝试解决这个问题,但是在网络上搜索时没有一个问题可以直接解释为什么我会收到这个错误,因为在这个包上没有执行光标。
我有一个执行 SSIS 包的 SQL 作业 - 这里对这个包进行了详细解释:
如上所示,发生了许多架构更改,这最终可以解释为什么我会收到此错误,但是当手动执行包并且仅通过 SQL 作业执行时,此错误似乎永远不会发生。它似乎也是自发发生的,有一天它起作用了,然后它给我这个错误:
Microsoft (R) SQL Server Execute Package UtilityVersion 10.50.4000.0 for 64-bitCopyright (C) Microsoft Corporation 2010。保留所有权利。开始时间:上午 04:30:00 错误:2016-11-11 04:31:35.91 代码:0xC0202009 来源:加载到暂存数据库 加载到暂存数据库 [114] 描述:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80004005。OLE DB 记录可用。来源:“Microsoft SQL Server Native Client 10.0” Hresult:0x80004005 描述:“无法完成游标操作,因为在声明游标后表架构已更改。”。结束错误错误:2016-11-11 04:31:35.92 代码:0xC0209029来源:加载到暂存数据库 加载到暂存数据库 [114] 描述:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。 “输入“OLE DB 目标输入”(127)”失败,因为发生错误代码 0xC020907B,并且“输入“OLE DB 目标输入”(127)”上的错误行处置指定错误失败。指定组件的指定对象发生错误。在此之前可能会发布错误消息,其中包含有关失败的更多信息。结束 ErrorError:2016-11-11 04:31:35.92 代码:0xC0047022 源:加载到暂存数据库 SSIS.Pipeline 描述:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。在处理输入“OLE DB 目标输入”(127) 时,组件“加载到暂存数据库”(114) 上的 ProcessInput 方法失败,错误代码为 0xC0209029。已识别的组件从 ProcessInput 方法返回错误。该错误是特定于组件的,但该错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。结束 ErrorError:2016-11-11 04:31:36.06 代码:0xC02020C4 源:加载到暂存数据库中检索 ITExtr03FinM 1 描述:尝试添加行到数据流任务缓冲区失败,错误代码为 0xC0047020。End ErrorError:2016-11-11 04:31:36.11 代码:0xC0047038 源:加载到暂存数据库 SSIS.Pipeline 描述:SSIS 错误代码 DTS_E_PRIMEOUTPUTFAILED。组件“检索 ITExtr03FinM”(1) 上的 PrimeOutput 方法返回错误代码 0xC02020C4。当管道引擎调用 PrimeOutput() 时,组件返回了失败代码。失败代码的含义由组件定义,但错误是致命的并且管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。结束 ErrorDTExec:程序包执行返回 DTSER_FAILURE (1)。开始时间:04:30:00 AMFinished: 04:31:36 AMElapsed: 95.859 秒
上述错误确实提到了Load into Stageing Database - 该数据流任务中包含以下内容:
有人能解释一下这个异常吗?有没有办法解决这个问题?
【问题讨论】:
-
您在 11 月 6 日是否进行了与架构相关的任何更改?包裹在 6 号之前是否完美运行?您是否检查了事件日志以查看在此期间是否有任何其他作业/进程会以任何方式访问文件或表或数据库?暂存表上的依赖对象呢?
标签: sql-server ssis sql-job