ORA-22992 cannot use LOB locators selected from remote tables

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:224

ORA-22992 cannot use LOB locators selected from remote tables

在给客户做数据迁移时,需要从远程数据库的一个表插入一些数据过来到本地数据库
真正使用DBLink时却碰到一个不小的问题:从远程数据库上查询Blob字段时总返回ORA-22992错误,如下:
select * from remoteTable@dl_remote;
ORA-22992 cannot use LOB locators selected from remote tables
远程数据库的表是有一个图象的大字段类型
而在测试时 做 insert 时正常
insert into table_name select * from remoteTable@dl_remote;
使用临时表也有种解决方法
查找了一下解决方法,有人提出了采用物化视图可以解决这个问题。物化视图唯一的缺陷在于同步机制的问题,如果同步时间设置过短,则占用大量的系统资源,给服务器带来极大的压力;如果设置时间过长,前台用户不可接受。
后来还是AskTom给出了极好的解决方案:使用全局临时表。
SQL> create global temporary table foo
2 (
3 X BLOB
4 )
5 on commit delete rows;
Table created
SQL> insert into foo select blobcolumn from remoteTable@dl_remote where rownum = 1;
1 row inserted
SQL>

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】