Page 1 of 1

ExecuteReader() throws ORA-24806

Posted: Tue 22 Feb 2011 18:31
by TNelson
I have a stored procedure that returns a table of a type that contains an NCLOB field. When I call the procedure via the ExecuteReader() method, it throws an ORA-24806 "LOB form mismatch" exception. The description of the error claims that it is due to a character set mismatch between the character set used to store the LOB and the character set used for the buffer. Is there any way to determine what character set is being used for the buffer, and is there any way to base the buffer type on the column type?

I'm using dotConnect 6.10.103.0, connecting to an 11gR2 instance.

Posted: Thu 24 Feb 2011 18:43
by Shalex
Are you connecting in the OCI (via Oracle client) or Direct mode? Please take into account encodings of your:
1) current thread (Encoding.Default);
2) Oracle Client (HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\_HomeName_ > NLS_LANG);
3) encoding of your database (NLS_CHARACTERSET and NLS_NCHAR_CHARACTERSET).

Try using the "Unicode=true;" connection string parameter.

If it doesn't help, please specify all your encodings and send us a small test project with the corresponding DDL/DML script. We will investigate your scenario and notify you about the results.