A: 

As for your CR/LF problem, it seems like you have been Oracled (bad thing, obviously...) :

At the time of this writing, there are no workarounds nor is Oracle considering back-porting a fix for Oracle9i.

You could gain more insight by delving into these Ask Tom answers. In your case, I guess developing a Java package would be an option worth being considered.

Mac
Oracle 9 is no longer fully supported. Premier support has ended.
Theo
Thanks for the reply Mac.Yes I think we might need to write an app to handle the export. We're a .NET shop so hopefully ODP.NET will be able to handle it! Otherwise we're looking at a Java solution.
Ashby
A: 

Given what you are doing with the data (ie trying to remove it from the database) what is the feasibility of copying the table (as BLOBs) to a later database version (or a linux or other non-windows version). Then you can run the extract from there.

Gary
Thanks for the suggestion Gary. It's something I'll look into... just a matter of whether there's a version 10 or 11 Oracle server in use and available. Suspect I'll be driven down the path of writing an app.
Ashby
+1  A: 

We had a strange one with this trying to handle MAC output, which just uses CR's.

We loaded a file with just CR's to the database as a BLOB, this was okay.

When we tried to write it out from the BLOB it errored with the same code you got!

Solution was before inserting into the blob replace all CR to CR LF.

Then interestingly when Oracle writes it out (DB is on UNIX), it just writes out LF's.

We then replace of LF's with CR's in the actual output file before delivering the the user!

Chris