最近在做一个照片采集的功能,照片采集是在外网库,而外网在把照片采集后,内网会读取外网库中的照片(照片字段是BLOB类型),如果内网直接通过select语句查询外网库的照片,则会报ORA-22992: cannot use LOB locators selected from remote tables的错误,网上查了一下解决方法,记录下来以便以后查看。 方法一:内网建一个包含大字段(BLOB)的表,然后通过inser into … select … from …@dblink把数据插入到内网的库表中,直接操作内网库表即可。如:创建表:
- SQL>create table inner_table select *from outer_table@dblink
插入数据:
- SQL>insert into inner_table select *from outer_table@dblink
这样就把外网表outer_table中的数据写到内网表inner_table中了。方法二:在本地创建一张和dblink远程端相同的全局临时表,然后在查询临时表:--创建临时表:
- SQL>create global temporary table tem_table( … ) on commit delete rows;
插入数据:
- SQL> insert into tem_table select * fromouter_table@dblink;
- xxx rows created.
这样就把数据写到临时表了,不过提交之后数据就被删除了(临时表的特性)。
其实这两种方法都差不多,只不过一个是用的临时表,一个是用的是永久性的表。Oracle DDL,DML,DCL,TCL 总结Oracle存储过程返回记录集相关资讯 Oracle错误日志
- Oracle 11g安装中遇到的问题及解决 (11/30/2012 18:49:13)
- 重启数据库遇到PRCR-1079,CRS- (08/17/2012 09:40:27)
- ORA-32004 的错误处理 (08/04/2012 15:46:08)
| - ORA-01652,temp表空间不足的相关 (10/15/2012 15:50:12)
- ORA-00245 错误解决 (08/17/2012 09:37:43)
- ORA-04031错误的解决思路 (07/30/2012 15:14:18)
|
本文评论 查看全部评论 (0)