Well, i came onto a team that is importing some thousands of files nightly, and things are going slowly. One of my tasks is to speed up the database side of things, so of course i'm changing the record-by-record processing and changing them to set processing, as in removing CURSORs and replacing them with intelligent queries.
One process will being loading the data into the database in the first place. One a few hundred lines, the current process can take up to 10 seconds per file! Whereas sqlldr seems to do it in
ERRORS specifies the maximum number of insert errors to allow. If the number of errors exceeds the value of the ERRORS parameter, SQL*Loader terminates the load. The default is 50. To permit no errors at all, set ERRORS=0. To specify that all errors be allowed, use a very high number.
Did you catch that? To specify that all errors be allowed, use a very high number.
Now to figure out how to have the entire file rejected on any errors. Because ERRORS will COMMIT everything in the file up to the erroring record (that causes the abort).