Problem using Oracle CLOB with EntLib2.0

Topics: Data Access Application Block
Mar 4, 2008 at 2:41 PM
Edited Mar 4, 2008 at 2:42 PM
I'm currently using EntLib2.0 DAAB against an Oracle 10g database, but can't get it to accept any data into a clob column (via a procedure) if the string length exceeds 2000 characters.
The DiscoverParameters call correctly identifies the column as OracleType=CLOB and shows it as dbType=AnsiString. This fails with 'ORA-01084: invalid argument in OCI call'. Changing the dbType to String supresses that error and the call works as long as the string length <2000, otherwise the call fails with 'ORA-01460: unimplemented or unreasonable conversion requested', which is uncharacteristically polite but awfully unhelpful.

Forcing the string length on the parameter to a value over 2000 doesn't help either.
Clues anyone?
Apr 23, 2008 at 11:06 AM
I've found a solution in case you have the same problem:
This appears to be a problem with the System.Data.OracleClient - it can't accept >32k of data for a procedure call. I have had to extend the data access block by adding a new provider that uses the Oracle supplied Oracle.DataAccess library to use CLOBs successfully.
Jan 18, 2013 at 11:27 PM

Hello RikGarner

 Can you share the code where showme the solution por this problem? Thanks.

Jan 21, 2013 at 4:09 AM

You might want to look at the Oracle ODP.NET Data Provider from EntLibContrib.  Not sure about your situation but in any case the source could probably help you.

Randy Levy
Enterprise Library support engineer
Support How-to