我想查询另一台服务器上面oracel的数据,用dblink 出现图中的错误,请问该如何解决

------解决思路----------------------
不能通过dblink访问lob类型,数据库本身的限制,考虑其他方式吧
------解决思路----------------------
LOB 类型的列,不能通过 DBLINK 的方式读取,如果这列数据,对你来说没用的话,建议使用 具体列名,不要用 星号( *) 了,非要取的话,有一个办法:
A机,建立了一个 dblink 到了 B机, 此时,你 select * from table@B ,出错了,就是你现在的情况。
B机,建立一个 dblink 到 A 机,你可以 insert into table@A select * from table 。 这个没有问题。
------解决思路----------------------
调用存储过程,就是直接调用就可以了,数据必须先提取过来,让对方主动写。
------解决思路----------------------
可以在本地建一个临时表,先将远程的数据copy过来,再对临时表查询:
SQL> create global temporary table test(X BLOB);
SQL> insert into test select blobcolumn from remoteTable@dl_remote where rownum = 1;
插入本地临时表之后,在本地的操作就没有任何问题了。
------解决思路----------------------
楼上说的对,可以用临时表过度下。
注意此处 insert into temp select * from table_name@db_link; 用select * 方式(即须把表结构弄成一样),不然有可能会报错。