使用DBLink方式同步远程数据库中含Blob、Clob字段表的问题解决
来源:互联网 发布:葫芦娃淘宝 编辑:程序博客网 时间:2024/06/05 16:33
在数据库同步中我们经常会用到DBLink方式。DBLink可以将物理上存放于网络的多个数据库在逻辑上当成一个单一的大数据库。开发人员无需关心数据库的网络分布,就能很方便的实现从不同数据库之间读取数据。如何在Oracle数据库间建立DBLink我在之前的文章已有涉及,这里就不花篇幅讲解了。具体请查看Oracle建立DBLink。
本篇文章主要阐述如何解决DBLink方式无法实现Blob、Clob字段数据同步的问题。在网上已经有很多牛人给出了解决方案,在参照他们的方案解决问题的过程中,发现有些小问题并没有解决,而且也没有人给出一个完整的解决过程。这里我把我的解决过程记录下来,供大家参考。
首先,我们看一下DBLink为何不能实现Blob、Clob字段的同步。我在我本机Oracle数据库中建立了DEVD数据库的Database Link。当我们Select没有大字段的DEVD数据库的表的时候,数据能查询出来。当我们查找含有大字段的表时,系统给出如下提示:
select * from JJR_TJJR_CYZGXX@DEVDBLINKJJR_TJJR_CYZGXX表中还有Blob字段。
因为Oracle不允许LOB属性的数据进行DBLink方式的查询的。解决此类问题有人提出使用临时表的形式进行中转,然后再进行数据的同步。使用这种方法确实能够解决问题,具体解决方案如下:
1.使用子查询来建立临时表,实现本地临时表复制远程数据库表的数据。
Create global temporary table temp on commit preserve rows as select * from JJR_TJJR_CYZGXX@DEVDBLINK为什么要用On commit preserve rows, 我之前的Oracle用子查询创建临时表的问题总结中已经提到。
通过查询temp表,我们发现所有JJR_TJJR_CYZGXX表中的数据已经同步到temp表中。
2.在本地test表中同步临时表temp的数据,先删除test表中数据,然后用子查询实现数据复制。
Insert into test select * from temp通过查询本地test表,我们看到即使含有Blob字段的表的数据已经查询过来。
其他解决方案:
通过临时表能够实现含大字段表的数据同步,我们之间使用本地表是否也能达到相同的效果呢?通过实验我们发现直接通过本地表也是能够实现的。
首先建立test1表,结构和JJR_TJJR_CYZGXX表结构一致。通过子查询来实现数据复制
Insert into test1 select * from JJR_TJJR_CYZGXX@DEVDBLINK通过查询test1表我们发现数据已经复制。
- 使用DBLink方式同步远程数据库中含Blob、Clob字段表的问题解决
- 使用DBLink方式同步远程数据库中含Blob、Clob字段表的问题解决
- 使用DBLink方式同步远程数据库中含Blob、Clob字段表的问题解决
- Oracle如何通过Database Link复制远程数据库表的CLOB/BLOB字段数据到本地数据库?
- 关于ORACLE中BLOB,CLOB字段增加记录的另一种方式
- oracle数据库中字段值的类型blob和clob是什么和两者的区别
- Blob、Clob字段的映射
- solr导入数据库Clob,Blob字段的配置
- 数据库的CLOB/BLOB字段存为本地txt java
- Oracle中BLOB和CLOB字段的操作
- Oracle中Clob与Blob字段的读取
- Oracle中Clob与Blob字段的读取
- Oracle中Clob与Blob字段的读取
- spring+hibernate中clob、blob字段的处理方法
- 使用JDBC操作基于Oracle的CLOB,BLOB字段类型
- Oracle数据库中CLOB字段的比较,使用Java代码。
- oracle中导出和导入含有blob,clob字段的表数据
- 使用dblink同步本地数据库新增记录到远程服务器
- RMAN 备份异机恢复 并创建新DBID
- 如何联机调试和发布程序(99$)
- Linux ftp 自动上传备份文件脚本
- android控件xml属性解释(不断更新)
- 2012华为校园招聘上机考试题(上海交大考场)
- 使用DBLink方式同步远程数据库中含Blob、Clob字段表的问题解决
- Nocatalog 下的RMAN 增量备份 shell脚本
- 我是个超级大菜鸟哦……:-),来学习ubuntu啦
- 史上最全google应用
- Unix平台下的常用命令技巧之 tar包、压缩与解压缩
- RAC 实例 迁移到 单实例 -- 使用导出导入
- Python开发超级利器-PyCharm安装下载与1.5.x的注册码
- 关于 RMAN 备份 数据块 一致性的讨论
- findbugs自定义检查器