报错如下:
服务器: 消息 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字段,然后过程取视图。