使用SSIS从SQL将数据传输到Oracle时出现问题

时间:2015-11-11 16:10:39

标签: sql-server oracle ssis

作为项目步骤的一部分,我需要运行一个SSIS包,它将上一步的结果传输到客户端Siebel / Oracle数据库。结果表中最多可包含500万行

如果我们只是使用SQL来执行插入(使用存储过程),它可以正常工作,但是它非常慢并且我们在测试期间遇到了超时

因此我在SSIS中设计了一个数据流(见截图)

SSIS Data Flow

从SQL中的相关表中选择数据,执行从Unicode到非unicode的数据转换,然后使用OLEDB目标传输到Oracle数据库。我已经消除了所有错误和警告消息,但是当我从Business Intelligence Development Studio中运行该过程时,我首先注意到它需要很长时间才能通过"预执行"阶段,然后似乎传输一些数据(再次看到scrrenshot),但后来我得到以下错误信息,我无法通过:

  

错误:0xC0202009在数据流任务,OLE DB目标[905]:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x8007000E。

     

OLE DB记录可用。资料来源:" Microsoft Cursor Engine" Hresult:0x8007000E描述:"内存不足。"。

     

错误:数据流任务中的0xC0047022,SSIS.Pipeline:SSIS错误代码DTS_E_PROCESSINPUTFAILED。组件" OLE DB Destination"上的ProcessInput方法(905)在处理输入" OLE DB目标输入"时失败,错误代码为0xC0202009。 (918)。标识的组件从ProcessInput方法返回错误。该错误特定于组件,但错误是致命的,将导致数据流任务停止运行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

     

错误:数据流任务中的0xC02020C4,DCS_FRA_Address_Output 1:尝试向数据流任务缓冲区添加行失败,错误代码为0xC0047020。

     

错误:数据流任务中的0xC0047038,SSIS.Pipeline:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。组件上的PrimeOutput方法" DCS_FRA_Address_Output" (1)返回错误代码0xC02020C4。当管道引擎调用PrimeOutput()时,组件返回失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关失败的更多信息。

     

信息:0x40043008在数据流任务,SSIS.Pipeline:后执行阶段开始。   信息:数据流任务中的0x4004300B,SSIS.Pipeline:"组件" OLE DB目标" (905)"写了0行。   信息:数据流任务中的0x40043009,SSIS.Pipeline:清理阶段正在开始。   任务失败:数据流任务

     

警告:包装上的0x80019002:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功,但引发的错误数(4)达到允许的最大值(1);导致失败。当错误数达到MaximumErrorCount中指定的数量时,会发生这种情况。更改MaximumErrorCount或修复错误。   SSIS包" Package.dtsx"完成:失败。

任何帮助解决这个问题都将非常感激。如果需要SSIS包属性的更多信息,请告诉我。我对此有点新鲜。

此外,如果在SSMS中有更好的方法,那么我对这种方法持开放态度

提前致谢

0 个答案:

没有答案