Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用SSIS从SQL向Oracle传输数据时出现问题_Sql Server_Oracle_Ssis - Fatal编程技术网

Sql server 使用SSIS从SQL向Oracle传输数据时出现问题

Sql server 使用SSIS从SQL向Oracle传输数据时出现问题,sql-server,oracle,ssis,Sql Server,Oracle,Ssis,作为项目步骤的一部分,我需要运行一个SSIS包,该包将上一步的结果传输到客户端Siebel/Oracle数据库。结果表中最多可以有500万行 如果我们只是使用SQL来执行插入(使用存储过程),它工作得很好,但是速度非常慢,并且在测试过程中遇到了超时 因此,我在SSIS中设计了一个数据流(参见屏幕截图) 它从SQL中的相关表中拾取数据,执行从Unicode到非Unicode的数据转换,然后使用OLEDB目标传输到Oracle数据库。我已经消除了所有的错误和警告消息,但当我在Business In

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

如果我们只是使用SQL来执行插入(使用存储过程),它工作得很好,但是速度非常慢,并且在测试过程中遇到了超时

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

它从SQL中的相关表中拾取数据,执行从Unicode到非Unicode的数据转换,然后使用OLEDB目标传输到Oracle数据库。我已经消除了所有的错误和警告消息,但当我在Business Intelligence Development Studio中运行该流程时,我注意到的第一件事是,它需要很长时间才能通过“预执行”阶段,然后似乎会传输一些数据(再次请参见scrrenshot)但随后我收到以下错误消息,我在处理该消息时遇到困难:

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

OLE DB记录可用。来源:“Microsoft光标引擎”Hresult:0x8007000E说明:“内存不足。”

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

错误:0xC02020C4位于数据流任务,DCS\u FRA\u地址\u输出:尝试向数据流任务缓冲区添加行失败,错误代码为0xC0047020

错误:0xC0047038位于数据流任务,SSIS。管道:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。组件“DCS\u FRA\u地址\u输出”(1)上的PrimeOutput方法返回错误代码0xC02020C4。当管道引擎调用PrimeOutput()时,组件返回了故障代码。故障代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关故障的更多信息

信息:0x40043008位于数据流任务,SSIS。管道:后执行阶段开始。 信息:SSIS数据流任务处的0x4004300B。管道:“组件”OLE DB Destination(905)写入了0行。 信息:0x40043009位于数据流任务,SSIS。管道:清理阶段开始。 任务失败:数据流任务

警告:0x80019002 at程序包:SSIS警告代码DTS_W_已达到最大错误计数。执行方法成功,但引发的错误数(4)达到了允许的最大值(1);导致失败。当错误数达到MaximumErrorCount中指定的数字时,会发生这种情况。更改MaximumErrorCount或修复错误。 SSIS包“package.dtsx”已完成:失败

如果您能帮助解决此问题,我们将不胜感激。如果需要从SSIS包属性获取更多信息,请告知我。我在这方面有点生疏

此外,如果在SSMS中有更好的方法,那么我愿意采用这种方法


提前感谢您

Hi Mark,源组件输出了多少列数据,它们是什么数据类型?@kzhen有20列,数据类型如下:nvarchar(18个实例)、datetime(1个实例)和numeric(1个实例)@kzhen我在我的原始帖子中添加了两个截图:一个来自SQL中的表,一个来自数据转换。截图还没有显示出来……但是听起来你可能需要调整一些缓冲区设置,阅读一些有用的信息。@kzhen我是一个新用户,不能发布两个以上的链接,所以我无法上传它们。感谢您的链接,我们将阅读。