Ho creato una tabella in un database Oracle 10g con questa struttura:Come leggere una colonna CLOB in Oracle usando OleDb?
create table myTable
(
id number(32,0) primary key,
myData clob
)
posso inserire le righe della tabella senza alcun problema, ma quando provo a leggere i dati dalla tabella utilizzando la connessione OleDb, ottengo un'eccezione.
ecco il codice che uso:
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();
}
L'eccezione dettagli sembra puntare su un tipo di dati non supportato:
System.Data.OleDb.OleDbException:
Unspecified error Oracle error occurred, but error message could not be retrieved from Oracle.
Data type is not supported.
Qualcuno sa come posso leggere questi dati utilizzando la connessione OleDb ?
PS: il driver utilizzato in questo caso è Microsoft.
Sono stato in grado di leggere i dati utilizzando il driver Oracle ODP.NET, ma l'applicazione esistente utilizza OleDb per ogni connessione. La modifica del driver predefinito richiederebbe una certa migrazione del codice e l'installazione di ODP.NET sui client. Ecco perché preferirei attaccare al driver OleDb. –
Non so se questo articolo di Microsft KB (http://support.microsoft.com/kb/244661) si applica ancora, ma dice 'Tipi di dati specifici per Oracle 8.x, come CLOB, BLOB, BFILE, NCHAR, NCLOB e NVARCHAR2, non sono supportati '. Se lo fa, penso che sei sfortunato :( –
Inoltre, dai un'occhiata a questo se non l'hai già fatto: http://groups.google.co.uk/group/borland.public.delphi.database .ado/browse_thread/thread/47674ad1a1e8ec75/228f9b4a22f5c9a5 –