Nothing to do with the driver. Oracle has a 4000 character limitation on VARCHAR2 fields.
The Oracle SQL parser can only handle string literals up to 4000 characters in length. SQL*Plus is even more restricted. It can handle strings up to 2500 characters in length. From most Oracle clients, there will in fact be no way to insert data longer than 4000 characters long into a table. A statement/system that works perfectly with a 4000-character string will fail completely with a 4001-character string. You have to completely redesign the way you're doing things to work with strings that might be long.
The Oracle 10g JDBC driver claims to have a work around. Check out this link
Also you can take a look at the following links:
Loading Large XMLs.
Limits in Oracle.
Hope that helps.