2010-03-29 9 views
6

Tôi đã tạo ra một bảng trên một cơ sở dữ liệu Oracle 10g với cấu trúc này:Làm thế nào để đọc một cột CLOB trong Oracle bằng OleDb?

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

tôi có thể chèn các hàng trong bảng mà không cần bất kỳ vấn đề, nhưng khi tôi cố gắng để đọc dữ liệu từ bảng sử dụng kết nối OleDb, tôi nhận được một ngoại lệ.

Đây là mã tôi sử dụng:

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

Ngoại lệ chi tiết dường như chỉ về một kiểu dữ liệu được hỗ trợ:

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

Có ai biết làm thế nào tôi có thể đọc dữ liệu này bằng cách sử dụng kết nối OleDb ?

PS: Trình điều khiển được sử dụng trong trường hợp này là Microsoft.

Trả lời

5

Tôi không chắc là có thể sử dụng loại CLOB với trình điều khiển Microsoft OLEDB.

Bạn có phải sử dụng Microsoft không? Bạn sẽ sử dụng số Oracle Provider for OLE DB hoặc tốt hơn nhưng chỉ sử dụng Oracle Data Provider for .NET (ODP.NET).

+0

Tôi đã có thể đọc dữ liệu bằng trình điều khiển Oracle ODP.NET, nhưng ứng dụng hiện có sử dụng OleDb cho mọi kết nối. Thay đổi trình điều khiển mặc định sẽ cần một số di chuyển mã và cài đặt ODP.NET trên máy khách. Đó là lý do tại sao tôi thích gắn bó với trình điều khiển OleDb. –

+1

Tôi không biết nếu bài viết Microsft KB này (http://support.microsoft.com/kb/244661) vẫn áp dụng, nhưng nó nói 'các loại dữ liệu Oracle 8.x cụ thể, chẳng hạn như CLOB, BLOB, BFILE, NCHAR, NCLOB và NVARCHAR2, không được hỗ trợ '. Nếu có, tôi nghĩ bạn không may mắn: ( –

+0

Ngoài ra, hãy xem điều này nếu bạn chưa có: http://groups.google.co.uk/group/borland.public.delphi.database .ado/browse_thread/thread/47674ad1a1e8ec75/228f9b4a22f5c9a5 –