Issue when Transfering Data to Oracle from SQL using SSIS

0

As part of a project step I need to run an SSIS package which will transfer the results of the previous step to the clients Siebel / Oracle database. There can be up to 5 million rows in the results table

If we just use SQL to do an insert (using a stored procedure) it works fine, however it is very slow and we have experienced timeouts during testing

I therefore have designed a data flow in SSIS (see screenshot)

SSIS Data Flow

which picks data from the relevant table in SQL, performs a data conversion from Unicode to non unicode and then should transfer to the Oracle database using an OLEDB destination. I have eliminated all of the error and warning messages, but when i run the process from within Business Intelligence Development Studio the first thing i notice is that it takes ages for it to move passed the "pre-execute" phase and then seems to transfer some data (again see scrrenshot) but then i get the following error message which I am having trouble working through:

Error: 0xC0202009 at Data Flow Task, OLE DB Destination [905]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x8007000E.

An OLE DB record is available. Source: "Microsoft Cursor Engine" Hresult: 0x8007000E Description: "Out of memory.".

Error: 0xC0047022 at Data Flow Task, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED. The ProcessInput method on component "OLE DB Destination" (905) failed with error code 0xC0202009 while processing input "OLE DB Destination Input" (918). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running. There may be error messages posted before this with more information about the failure.

Error: 0xC02020C4 at Data Flow Task, DCS_FRA_Address_Output 1: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020.

Error: 0xC0047038 at Data Flow Task, SSIS.Pipeline: SSIS Error Code DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput method on component "DCS_FRA_Address_Output" (1) returned error code 0xC02020C4. The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing. There may be error messages posted before this with more information about the failure.

Information: 0x40043008 at Data Flow Task, SSIS.Pipeline: Post Execute phase is beginning. Information: 0x4004300B at Data Flow Task, SSIS.Pipeline: "component "OLE DB Destination" (905)" wrote 0 rows. Information: 0x40043009 at Data Flow Task, SSIS.Pipeline: Cleanup phase is beginning. Task failed: Data Flow Task

Warning: 0x80019002 at Package: SSIS Warning Code DTS_W_MAXIMUMERRORCOUNTREACHED. The Execution method succeeded, but the number of errors raised (4) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors. SSIS package "Package.dtsx" finished: Failure.

Any help in resolving this would be much appreciated. please let me know if more information is needed from the SSIS package properties. I am a bit new at this.

Also if there is a better way of doing this within SSMS then I am open to that approach

Thanks in advance

sql-server
oracle
ssis
asked on Stack Overflow Nov 11, 2015 by Mark Southwell

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0