dblink同步远程带有blob字段的表 目前在做一个功能:数据库双机热备份,采用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;