What happens if you try to use the first way of setting the CLOB with Oracle? (I have only ever used Oracle specific way of handling LOBs, as I don't have to support multiple databases in our project, so I honestly don't know.) I would expect there is a database-agnostic way of writing LOBs to Oracle, though it might be slower than some Oracle specific approaches.
The most efficient approach to set LOB in Oracle would be to insert/update a row so that it contains an empty LOB (using the the
empty_clob() or
empty_blob() SQL functions), and then fill up the LOB using the new lob handle. Other approaches usually cause the LOB to be created in temp area first and then copied to the table's LOB segment. For large OBs, that might be a concern, but for smaller ones probably not so much.
Details can be found in
Oracle's documentation. Note that while this
doc is the 10g version, you can use the 11g version
JDBC driver with 10g database. There might be some enhancements regarding LOB manipulations available, if interested, look up the 11g version of the docs.