Ich habe eine Tabelle auf einer Oracle 10g-Datenbank mit dieser Struktur erstellt:Wie liest man eine CLOB-Spalte in Oracle mit OleDb?
create table myTable
(
id number(32,0) primary key,
myData clob
)
ich Zeilen in der Tabelle ohne Probleme einfügen kann, aber wenn ich versuche, Daten aus der Tabelle zu lesen OleDb-Verbindung, ich eine Ausnahme. Hier
ist der Code, den ich verwenden:
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();
}
Die Ausnahme Details auf einen nicht unterstützten Datentyp zu zeigen scheint:
System.Data.OleDb.OleDbException:
Unspecified error Oracle error occurred, but error message could not be retrieved from Oracle.
Data type is not supported.
Wer weiß, wie ich diese Daten lesen kann, die OLEDB-Verbindung mit ?
PS: Der Treiber in diesem Fall ist der Microsoft-Treiber.
Ich konnte die Daten mit Oracle ODP.NET-Treiber lesen, aber die vorhandene Anwendung verwendet OleDb für jede Verbindung. Das Ändern des Standardtreibers würde eine Code-Migration erfordern und ODP.NET auf Clients installieren. Deshalb würde ich lieber auf OleDb-Treiber bleiben. –
Ich weiß nicht, ob dieser Microsft KB-Artikel (http://support.microsoft.com/kb/244661) noch gilt, aber es sagt Oracle 8.x-spezifische Datentypen, wie CLOB, BLOB, BFILE, NCHAR, NCLOB und NVARCHAR2 werden nicht unterstützt '. Wenn ja, haben Sie kein Glück :( –
Schauen Sie sich das auch an, wenn Sie noch nicht wissen: http://groups.google.co.uk/group/borland.public.delphi.database .ado/browse_thread/thread/47674ad1a1e8ec75/228f9b4a22f5c9a5 –