ExecuteReader() throws ORA-24806

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
TNelson
Posts: 1
Joined: Tue 22 Feb 2011 17:44

ExecuteReader() throws ORA-24806

Post by 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.

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Post by 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.

Post Reply