数据库之间可以通过搭建DBlink进行数据间的同步,比较方便业务数据上面的同步,但是有部分数据Oracle数据库(其他数据库不太清楚)并不支持传输,
如BLOB,CLOB,今天就遇到这样的问题,数据库用DBlink传输数据是,传输Blob类型的数据不能进行,远程用DBlink访问含有此字段的表也失败,提示为
如下是我通过找寻得到的解决方法,记录一下,仅供参考,比较简单的方法就是创建一个临时表(同样的表结构的实际表也可以)
说明:temp 临时表
pak_persion@scjg 远程表
pak_persion 本地表
@scjg 创建的DBlink名称
pak_persion_test 本地实际表
Create global temporary table temp on commit preserve rows as select * from PAK_PERSION@scjg;
然后查询这张临时表(实际表),就会发现同步的数据在表里面,然后用子查询将查出来的表里面的数据插入到原来的表里面就可以了
Insert into PAK_PERSION select * from temp;
此刻查询原来同步的表数据就就可以看到同步的数据已经进去了,另提一下,创建实际表可以直接用子查询的方式进行插入
Insert into PAK_PERSION_TEST select * from PAK_PERSION@scjg;