ExecuteReader() throws ORA-24806

ExecuteReader() throws ORA-24806

Postby TNelson » Tue 22 Feb 2011 18:31

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.
TNelson
 
Posts: 1
Joined: Tue 22 Feb 2011 17:44

Postby Shalex » Thu 24 Feb 2011 18:43

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.
Shalex
Devart Team
 
Posts: 7530
Joined: Thu 14 Aug 2008 12:44


Return to dotConnect for Oracle