Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31867
  • 博文数量: 15
  • 博客积分: 386
  • 博客等级: 一等列兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-25 15:22
文章分类

全部博文(15)

文章存档

2012年(15)

我的朋友
最近访客

分类: Oracle

2012-07-13 20:24:35

最近在做一个照片采集的功能,照片采集是在外网库,而外网在把照片采集后,内网会读取外网库中的照片(照片字段是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.

这样就把数据写到临时表了,不过提交之后数据就被删除了(临时表的特性)。
其实这两种方法都差不多,只不过一个是用的临时表,一个是用的是永久性的表。


阅读(1565) | 评论(0) | 转发(0) |
0

上一篇:使用VNC实现LINUX与windows的相互远程控制

下一篇:没有了

给主人留下些什么吧!~~