LOB 类型的列,不能通过 DBLINK 的方式读取,如果这列数据,对你来说没用的话,建议使用 具体列名,不要用 星号( *) 了,非要取的话,有一个办法:A机,建立了一个 dblink 到了 B机, 此时,你 select * from table@B ,出错了,就是你现在的情况。
B机,建立一个 dblink 到 A 机,你可以 insert into table@A select * from table 。 这个没有问题。

解决方案 »

  1.   

    是的,可以,要是我跨库调用oracel的存储过程,该怎么样调用呢
      

  2.   

    可以在本地建一个临时表,先将远程的数据copy过来,再对临时表查询:SQL> create global temporary table test(X BLOB);SQL> insert into test select blobcolumn from remoteTable@dl_remote where rownum = 1;插入本地临时表之后,在本地的操作就没有任何问题了。
      

  3.   

    楼上说的对,可以用临时表过度下。
    注意此处 insert into temp select  *  from table_name@db_link; 用select * 方式(即须把表结构弄成一样),不然有可能会报错。