dblink同步远程带有blob字段的表

BadPattern 2010-02-12 10:55:23
加精
目前在做一个功能:数据库双机热备份,采用dblink和触发器来实现两个数据库同步,但是在同步插入操作主数据库中一张带有blob字段表的时候出现了问题,oracle的触发器不可以直接访问远程表的blob字段,会报错:无法使用从远程表选择的 lob 定位器。
解决方法如下:1,在本地数据库创建一个结构和含有blob字段表相同的临时表。
2,把新插入的数据插入到临时表中。
3,再把临时表的数据用insert into remoteTable@dblink_name select * from temp的形式插入到远程数据库中

示例代码如下:
CREATE GLOBAL TEMPORARY TABLE temp as select * from test(含有blob字段,字段名为file) where 1=2;
触发器:
create or replace trigger test_trigger
after insert on test
for each row
begin
if inserting then
insert into temp (id,file,name) values (:new.id,:new.file,:new.name);
insert into test@dblink_name select * from temp(只能用select * 的方式来插入,不然会报错)
where id=:new.id;
end if;
end;
...全文
8630 38 点赞 打赏 收藏 举报
写回复
38 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lxfsxkth 2012-07-16
这个方法我试了怎么不行啊,数据能同步,blob字段是空的啊。。。。。。求解释
  • 打赏
  • 举报
回复
gavinloo 2011-09-14
项目中碰到楼主类似的问题,从远程导入Blob字段失败。感谢。
  • 打赏
  • 举报
回复
jessie_01 2011-08-24
不用中间表直接insert也是可以成功,不过我的是写在存储过程里面的,为什么要加中间表~
  • 打赏
  • 举报
回复
zhiheyang 2011-07-19
insert 这样做可以,我试了,但是若是update,怎么做啊
  • 打赏
  • 举报
回复
windly4548 2011-06-27
图片能显示出来吗
?怎么没一个试出来的
  • 打赏
  • 举报
回复
gdd714 2010-08-06
双机热备和同步有什么关系,小数据量还可以接受,还是用基于硬件的方案吧
  • 打赏
  • 举报
回复
aries_nj 2010-07-24
找了好长时间了,终于找到这个方法了
  • 打赏
  • 举报
回复
化繁为简2007 2010-02-28
先收藏了,慢慢看!!!!
  • 打赏
  • 举报
回复
學習,不錯~~~~~~~~
  • 打赏
  • 举报
回复
rehom1234 2010-02-22
还没试过,想法不错!
  • 打赏
  • 举报
回复
mywaypig 2010-02-21
FGHFGHFGGHGHFDGHFGHDGHGFHFGHGHFGHFG
  • 打赏
  • 举报
回复
scutLiu 2010-02-21
mark学习中
  • 打赏
  • 举报
回复
yxiaowang 2010-02-21
不错,值得学习!!值得学习
  • 打赏
  • 举报
回复
yangchao0618 2010-02-21
好帅啊???????高手
  • 打赏
  • 举报
回复
lgp8249 2010-02-21
不错!!不错!!不错!!不错!!不错!!
  • 打赏
  • 举报
回复
huhaizeyuan 2010-02-20
学习下,或许某天会用着。
多谢分享。
  • 打赏
  • 举报
回复
oraclemch 2010-02-20
引用 20 楼 dr8737010 的回复:
引用 1 楼 oraclemch 的回复:嗯,触发器里面不要select * from temp; 方式不太好,万一temp表数据量大的话,会严重影响数据库的性能的。

temp表只是个临时表,在commit以后里边数据会被清空掉(测试过了),所以不会出现这种情况,它相当于一个临时中转站


那你怎么保证这个临时表temp里面的数据全是你insert into的呢?万一别的oracle用户或者系统用户insert into temp的话,你怎么办呢?
  • 打赏
  • 举报
回复
wangjiahuhjh 2010-02-20
学习了 真的不错 ,感谢了
  • 打赏
  • 举报
回复
duqiangcise 2010-02-19
mark一下,咋都有人上班了呀!
  • 打赏
  • 举报
回复
nettman 2010-02-19
新思路,学习学习。
新年快乐!
  • 打赏
  • 举报
回复
加载更多回复
相关推荐
发帖
基础和管理
加入

1.7w+

社区成员

Oracle 基础和管理
申请成为版主
帖子事件
创建了帖子
2010-02-12 10:55
社区公告
暂无公告