导出多个表时出现SSIS / DTS错误

时间:2014-07-01 18:16:33

标签: sql sql-server sql-server-2008 ssis

我在这里得到一个奇怪的问题,当我从MSSMS 2008R2运行导入/导出并将这4个表导出到具有相同表结构的访问数据库时,它将在下面出错:

  

“ - 复制到'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。 ProcessInput   组件“Destination 2 - stdchp”(131)上的方法失败并出现错误   代码0xC0209029处理输入“目标输入”(144)。该   已识别的组件从ProcessInput方法返回错误。   该错误特定于组件,但错误是致命的   将导致数据流任务停止运行。可能有错误   此前发布的消息包含有关失败的更多信息。   (SQL Server导入和导出向导)“

现在我尝试验证数据不是问题,并验证所有表映射都是正确的,也是正确的数据类型,但它仍然失败。

我通过分别运行4个表导出中的每一个来缩小它,每个导出工作得很好。但当我添加全部4后,它又失败了。我添加了4中的3个,它仍然运行。表“sdgrpmap”是在要导出的表组中的问题表。不知道为什么,但搜索所有错误代码,它们是广泛的,而不是真正的问题。

任何人都知道为什么一个表在一组表导出中运行时会失败但不能单独运行?听起来像锁定或更新问题,访问连接设置为共享,但可能是SQL服务器问题。

由于

编辑:添加报告,显示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_INDUCEDTRANSFORMFAILUREONERROR。 “输入”目的地输入“   (144)“失败,因为错误代码0xC020907B发生,并且错误   “输入”上的行处置目标输入“(144)”指定失败   出错了。指定的指定对象发生错误   零件。在此之前可能会发布错误消息   有关失败的信息。 (SQL Server导入和导出向导)   错误0xc0047022:数据流任务1:SSIS错误代码   DTS_E_PROCESSINPUTFAILED。组件上的ProcessInput方法   “目标2 - stdchp”(131)失败,错误代码为0xC0209029   处理输入“目的地输入”(144)。确定的组件   从ProcessInput方法返回错误。错误是特定的   到组件,但错误是致命的,将导致数据流   任务停止运行。在此之前可能会发布错误消息   有关失败的更多信息。 (SQL Server导入和   导出向导)

     
      
  • 复制到stdchp(已停止)

  •   
  • 复制到stdpdrpanelmap(已停止)

  •   
  • 执行后(成功)消息

  •   
  • 信息0x4004300b:数据流任务1:“组件”目的地 - chapterorigin“(22)”写了16行。   (SQL Server导入和导出向导)
  •   
  • 信息0x4004300b:数据   Flow Task 1:“component”Destination 1 - sdgrpmap“(66)”写了40   行。 (SQL Server导入和导出向导)
  •   
  • 信息0x4004300b:   数据流任务1:“组件”目的地2 - stdchp“(131)”写道193   行。 (SQL Server导入和导出向导)
  •   
  • 信息0x4004300b:   数据流任务1:“组件”目标3 - stdpdrpanelmap“(201)”   写了4853行。 (SQL Server导入和导出向导)
  •   

1 个答案:

答案 0 :(得分:0)

我认为由于表中的数据而失败。

如果要合并来自所有四个表的数据并放入一个表,那么目标表应该支持所有4个表的要求。

归结为 -

  • 是否允许空值
  • 数据类型和字段大小

您的包中可以implement re-direct bad rows逻辑,这样您就可以获得错误的数据(如果有的话)。此外,在派生列的帮助下,处理空值。