ORA-24813 cannot send or receive an unsupported LOB

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
pari
Posts: 17
Joined: Thu 27 Nov 2008 12:33

ORA-24813 cannot send or receive an unsupported LOB

Post by pari » Thu 27 Nov 2008 13:01

Hi!
When I write BLOB to my consumer database then I get ORA-24813.
In this case I used clause 'direct=true', but if I used 'direct=false' then all were ok.

My customer have:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production With the Partitioning, Real Application Clusters, Data Mining and Real Application Testing options

My testing database (there are all is ok):
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production With the Partitioning, OLAP and Data Mining options

What can I do? (my company 'very' prefere direct connection without 'huge' Oracle Client).

Have a nice day, Pavel

Ps:
Oracle error description:
ORA-24813 cannot send or receive an unsupported LOB
Cause
An attempt was made to send a LOB across the network, but either the server does not support the LOB sent by the client, or the client does not support the LOB sent by the server. This error usually occurs when the client and server are running different versions of Oracle.

pari
Posts: 17
Joined: Thu 27 Nov 2008 12:33

Crazy solving

Post by pari » Thu 27 Nov 2008 13:21

I try to many switches and.... tram ta da da!

If I added 'unicode=false' to connection string then all's ok, but there is only overkill...

AndreyR
Devart Team
Posts: 2919
Joined: Mon 07 Jul 2008 13:16

Post by AndreyR » Fri 28 Nov 2008 12:52

Does that solution suit you? If no, try to set

Code: Select all

OracleUtils.UseDirectLobs=false
in your code. Please let us know about the results.

pari
Posts: 17
Joined: Thu 27 Nov 2008 12:33

I tested obsolete 'UseDirectLobs' and the problem continues

Post by pari » Mon 01 Dec 2008 09:38

There I identified the problem:
(I suppose, that the byte array can be the problem...)

Hi, PaRi

public override void Save()
{
OracleCommand command;
command = new OracleCommand("UPDATE gag_application SET icon=:icon WHERE id=:id", GAGPersistor.Persistor.Connection);

try
{
command.Parameters.AddWithValue(":id", Id);
command.Parameters.AddWithValue(":icon", ImageToByteArray(Icon));
command.ExecuteScalar();
}
catch
{
command.Dispose();

throw;
}
}


private byte[] ImageToByteArray(Icon icon)
{
MemoryStream stream = new MemoryStream();
icon.Save(stream);
return stream.ToArray();
}

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

Post by Shalex » Thu 04 Dec 2008 14:59

We are investigating this issue. You will be notified about the results as soon as possible.

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

Post by Shalex » Fri 05 Dec 2008 09:15

We cannot reproduce the problem on our test machines. Is it possible to connect to your Oracle server through the Internet? If yes, please provide me (alexsh*devart*com) with all necessary settings (connection string).

Post Reply