2010-03-29 43 views
6

he creado una tabla en una base de datos Oracle 10g con esta estructura:¿Cómo leer una columna CLOB en Oracle utilizando OleDb?

create table myTable 
(
id  number(32,0)  primary key, 
myData clob 
) 

puedo insertar filas en la tabla sin ningún problema, pero cuando trato de leer los datos de la tabla utilizando la conexión OleDb, recibo una excepción.

Este es el código que utilizo:

using (OleDbConnection dbConnection = new OleDbConnection("ConnectionString")) 
{ 
    dbConnection.Open(); 

    OleDbCommand dbCommand = dbConnection.CreateCommand(); 

    dbCommand.CommandText = "SELECT * FROM myTable WHERE id=?"; 
    dbCommand.Parameters.AddWithValue("ID", id); 

    OleDbDataReader dbReader = dbCommand.ExecuteReader(); 
} 

La excepción detalles parece apuntar a un tipo de datos no soportado:

System.Data.OleDb.OleDbException: 
Unspecified error Oracle error occurred, but error message could not be retrieved from Oracle. 
Data type is not supported. 

¿Alguien sabe cómo puedo leer estos datos usando la conexión OleDb ?

PD: El controlador utilizado en este caso es el de Microsoft.

Respuesta

5

No estoy seguro de que sea posible utilizar el tipo CLOB con el controlador OLEDB de Microsoft.

¿Tienes que usar uno de Microsoft? Sería mucho mejor usar el Oracle Provider for OLE DB o mejor aún solo usar Oracle Data Provider for .NET (ODP.NET).

+0

He podido leer los datos usando el controlador Oracle ODP.NET, pero la aplicación existente usa OleDb para cada conexión. Cambiar el controlador predeterminado necesitaría algo de migración de código e instalar ODP.NET en los clientes. Es por eso que preferiría seguir con el controlador OleDb. –

+1

No sé si este artículo de Microsft KB (http://support.microsoft.com/kb/244661) aún se aplica, pero dice 'Tipos de datos específicos de Oracle 8.x, como CLOB, BLOB, BFILE, NCHAR, NCLOB y NVARCHAR2 no son compatibles ". Si lo hace, creo que no tiene suerte :( –

+0

Además, eche un vistazo a esto si aún no lo ha hecho: http://groups.google.co.uk/group/borland.public.delphi.database .ado/browse_thread/thread/47674ad1a1e8ec75/228f9b4a22f5c9a5 –

Cuestiones relacionadas