频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

解决不同字符集数据库间的数据同步问题

来源:pcdog 作者:佚名 出处:巧巧读书 2008-03-07 进入讨论组

解决不同字符集数据库间的数据同步问题:

1、首先在原数据库上做一个视图,对保存汉字的字段,加包函数utl_raw_cast_to_raw(保存汉字的字段)

2、在新数据库上,做个数据库连接,连接指向原数据库,之后对步骤1中的视图中,使用了

utl_raw_cast_to_raw的字段,再用utl_raw_cast_to_varchar2函数转换回来,

具体测试环境和测试方法:

10.0.10.108:testdb zhs16gbk
10.10.10.166:gsweb us7ascii

1.在108的testdb数据库中建一个表 itax.city 其中有一列name中保存汉字

2.增加一个视图如:

CREATE VIEW V_CITY AS SELECT UTL_RAW.CAST_TO_RAW(NAME) AS NAME FROM CITY;
SELECT * FROM V_CITY;

3.在167机器上的tnsnames.ora文件中增加到108的连接入口

在gsweb数据库中增加到108的数据库链路,如:

SQL> 
create public database link testdb connect to itax 
identified by itax using 'testdb';

Database link created.

4.在gsweb数据库查询

select utl_raw.cast_to_varchar2(name) from V_city@testdb

5.不能基于视图来建立物化视图,所以只能先建一个缓冲表,然后每天使用存储过程来填充此表,

以达到同步数据之目的

另外,如果仅做查询使用,则在目的数据库上增加一个视图即可。

如下所示:

源数据库上的视图:

CREATE VIEW V_fg_wh AS SELECT UTL_RAW.CAST_TO_RAW(fg_wh) AS fgwh FROM fg_wh;

目的数据库上的数据链路:

create public database link gsweb connect to gs12366 
identified by htjs_12366 using 'gsweb';

目的数据库上的视图:

create view fg_wh as 
select utl_raw.cast_to_varchar2(fgwh) fgwh from v_fg_wh@gsweb

浏览地址: http://www.qqread.com/oracle/2008/03/h400366.html 更多文章 更多内容请看数据库专栏数据库处理专题城域网专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章