Re: Allocating memory for Bulk Inserts

From: Daniel Morgan <damorgan_at_x.washington.edu>
Date: Thu, 08 Jan 2004 07:32:38 -0800
Message-ID: <1073575876.50742_at_yasure>


oidba wrote:

>>>SQL*LOADER is not an option
>>
>>I am sorry: Why not ?

>
>
> We're talking zero room for error in this situation. This is a
> telecomm call charging application. Unless Oracle provides a C/C++
> SQL*LOADER API, I would not bet too much on SQL*LOADER to provide the
> appropriate error handling and transaction control needed. How do you
> suppose I rollback a transaction once SQL*LOADER has loaded the table.
> I would not want to depend on the return value from a "system()" or
> "popen()" to handle the errors. Should one file be incorrectly
> processed, a tedious and time consuming task of batch cleaning would
> have to take place to manually rollback.

One hardly ever depends on SQL*Loader to provide error handling. Follow Jan's advice. Create s separate schema with a name like STAGING and use DIRECT PATH to push the data in as fast as possible and that means heap tables with all VARCHAR2 fields and no constraints. Then, after it is in Oracle, push it out to the production schema with appropriate validation checks in place.

-- 
Daniel Morgan
http://www.outreach.washington.edu/ext/certificates/oad/oad_crs.asp
http://www.outreach.washington.edu/ext/certificates/aoa/aoa_crs.asp
damorgan_at_x.washington.edu
(replace 'x' with a 'u' to reply)
Received on Thu Jan 08 2004 - 16:32:38 CET

Original text of this message