關於SQL Server通過OLEDB訪問ORACLE資料表涉及CLOB或BLOB欄位的錯誤提示

qdrzq發表於2014-05-20

報錯如下:
伺服器: 訊息 7399,級別 16,狀態 1,行 1
OLE DB 提供程式 'MSDAORA' 報錯。
[OLE/DB provider returned message: 未指定的錯誤]
[OLE/DB provider returned message: 發生了一個 Oracle 錯誤,但無法從 Oracle 中檢索錯誤資訊。]
[OLE/DB provider returned message: 資料型別不被支援。]
OLE DB 錯誤跟蹤[OLE/DB Provider 'MSDAORA' IOpenRowset::OpenRowset returned 0x80004005:   ]。

最終定位到
select * from ORCL..USR01.TETP
這條語句上面.

Oracle資料庫中,TETP表結構如下:
create table TETP
(etpcode varchar2(10), etpname varchar2(100), etpintro clob);

總結的原因是:
使用Microsoft的驅動連線oracle庫,不支援帶有CLOB/BLOB欄位的表,即使select欄位列表不取這樣的欄位也是不行的。
解決方法是:一是連結伺服器使用Oracle的驅動來建;二是Oracle庫中建一個檢視,不包含clob/blob欄位,然後過程取檢視。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29512902/viewspace-1165093/,如需轉載,請註明出處,否則將追究法律責任。

相關文章