数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2021年09月07日
 
解决不同字符集数据库间的数据同步问题

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

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

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

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

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

:testdb zhsgbk:gsweb usascii

的testdb数据库中建一个表 itaxcity 其中有一列name中保存汉字

增加一个视图如:

CREATE VIEW V_CITY AS SELECT UTL_RAWCAST_TO_RAW(NAME) AS NAME FROM CITY;SELECT * FROM V_CITY;

机器上的tnsnamesora文件中增加到的连接入口

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

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

在gsweb数据库查询

select utl_rawcast_to_varchar(name) from V_city@testdb

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

以达到同步数据之目的

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

如下所示:

源数据库上的视图:

CREATE VIEW V_fg_wh AS SELECT UTL_RAWCAST_TO_RAW(fg_wh) AS fgwh FROM fg_wh;

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

create public database link gsweb connect to gs identified by htjs_ using gsweb;

目的数据库上的视图:

create view fg_wh as select utl_rawcast_to_varchar(fgwh) fgwh from v_fg_wh@gsweb

上一篇:Oracle发布新版BerkeleyDB嵌入式数据库

下一篇:ORACLE在HP-UX下的系列问题处理(39)