【发布时间】:2014-07-01 18:16:32
【问题描述】:
我在这里遇到了一个奇怪的问题,当我从 MSSMS 2008R2 运行导入/导出并将这 4 个表导出到具有相同表结构的 access 数据库时,它将出现以下错误:
"- 复制到“sdgrpmap”(错误)消息错误 0xc0202009:数据流 任务 1:SSIS 错误代码 DTS_E_OLEDBERROR。
发生了 OLE DB 错误。错误代码:0x80004005。
(SQL Server 导入和导出向导)错误 0xc0209029:数据流 任务 1:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。这 “输入”目标输入“(144)”失败,因为错误代码 0xC020907B 发生,并且“输入”目标输入上的错误行处置 (144)" 指定错误时失败。指定的错误发生 指定组件的对象。可能会发布错误消息 在此之前提供有关失败的更多信息。
(SQL Server 导入和导出向导)错误 0xc0047022:数据流 任务 1:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。过程输入 组件“目标 2 - stdchp”(131) 上的方法因错误而失败 处理输入“目标输入”(144) 时出现代码 0xC0209029。这 已识别的组件从 ProcessInput 方法返回错误。 该错误是特定于组件的,但该错误是致命的并且 将导致数据流任务停止运行。可能有错误 在此之前发布的消息,其中包含有关失败的更多信息。 (SQL Server 导入和导出向导)"
现在我尝试验证数据没有问题,并验证所有表映射都正确且数据类型也正确,但仍然失败。
我通过单独运行 4 个表导出中的每一个来缩小范围,并且每个都运行良好。但是当我将所有 4 个都添加回来时,它又失败了。我添加了 4 个中的 3 个,它仍然运行。表“sdgrpmap”是要导出的表组中的问题表。不知道为什么,但是用谷歌搜索了所有的错误代码,它们的范围很广,并不是我的问题。
有人知道为什么一个表在一组表导出中运行时会失败,而不是单独运行吗?听起来像是锁定或更新问题,访问连接设置为共享,但可能是 sql server 问题。
谢谢
编辑:添加显示 3 个表写出正确数量的记录的报告,但第 4 个“stdchp”仅写出 2622 条记录中的 193 条。
执行(成功)
复制到
chapterorigin(成功)传输16行复制到
sdgrpmap(错误)传输了40行消息错误 0xc0202009:数据流任务 1:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码: 0x80004005。 (SQL Server 导入和导出向导)错误 0xc0209029: 数据流任务 1:SSIS 错误代码 DTS_E_INDUCEDTRANSFORMFAILUREON错误。 "输入"目标输入" (144)" 失败,因为发生错误代码 0xC020907B,并且错误 “输入”目标输入“(144)”上的行处置指定失败 关于错误。在指定的指定对象上发生错误 零件。在此之前可能会发布更多错误消息 有关故障的信息。 (SQL Server 导入和导出向导) 错误 0xc0047022:数据流任务 1:SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。组件上的 ProcessInput 方法 “目标 2 - stdchp”(131)失败,错误代码为 0xC0209029,而 处理输入“目的地输入”(144)。已识别的组件 从 ProcessInput 方法返回错误。错误是具体的 到组件,但错误是致命的,将导致数据流 任务停止运行。在此之前可能会发布错误消息 提供有关失败的更多信息。 (SQL Server 导入和 导出向导)
复制到
stdchp(已停止)复制到
stdpdrpanelmap(已停止)执行后(成功)消息
- 信息 0x4004300b:数据流任务 1:“组件“目标 - 章节来源”(22)”写入了 16 行。 (SQL Server 导入和导出向导)
- 信息 0x4004300b:数据 流任务 1:“组件“目的地 1 - sdgrpmap”(66)”写了 40 行。 (SQL Server 导入和导出向导)
- 信息 0x4004300b: 数据流任务 1:“组件“目的地 2 - stdchp”(131)”写了 193 行。 (SQL Server 导入和导出向导)
- 信息 0x4004300b: 数据流任务 1:“组件“目的地 3 - stdpdrpanelmap”(201)” 写了 4853 行。 (SQL Server 导入和导出向导)
【问题讨论】:
-
是否有名为
stdchp的数据库对象?如果是这样,SQL Server 中的 DDL 是什么? MS Access 中的定义? -
是的,这是其中一张表,并且对象确实存在,并且在源和目标中都正确命名。大小写也是正确的。刚刚尝试将它重新运行到作为目标的本地访问数据库,它写出 3 个表,但最后一个它只部分输出。这与它在网络共享上时有点不同,因为它部分写出了第 3 个表,而第 4 个表已完成。
-
请记住,当我一次导出一个表时,它可以完美运行。
-
您是否保存了 SSIS,或者您是否每次都在导入/导出。为什么不保存 SSIS 并将其设置为作业并运行作业,而不是每次都通过向导?
-
我保存了 SSIS,但我每次都重新创建它,因为来回添加/删除表以找出 htis 更简单。看起来可能是 97 版本的访问数据库可能与此有关。能够使用 2000 db 并在 10 个表中导入一些测试数据,最多 100,000 条记录,没有问题。
标签: sql sql-server sql-server-2008 ssis