如何使用OleDb读取Oracle中的CLOB列?

时间:2010-03-29 11:56:15

标签: .net oracle oledb clob

我在Oracle 10g数据库上创建了一个具有以下结构的表:

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

我可以在表中插入行而没有任何问题,但是当我尝试使用OleDb连接从表中读取数据时,我得到了一个异常。

以下是我使用的代码:

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();
}

异常细节似乎指向不受支持的数据类型:

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

有没有人知道如何使用OleDb连接读取这些数据?

PS:在这种情况下使用的驱动程序是Microsoft。

1 个答案:

答案 0 :(得分:5)

我不确定是否可以将CLOB类型与Microsoft OLEDB驱动程序一起使用。

你必须使用微软吗? 你可以更好地使用Oracle Provider for OLE DB或者更好,只需使用Oracle Data Provider for .NET(ODP.NET)。