zt
关于US7库的数据在GB2312库中访问的实现方法
―― 广州瑞信 温和
基本思想:
在US7库中利用UTL_RAW函数创建视图,在GB2312库中创建链接至US7库去的database link,即可使用database link来访问US7中的中文字符数据(客户端为GB2312,无需做出改动)。
具体实现:
一、 环境介绍
数据库版本ORACLE 8.1.7
使用US7字符集的数据库SID为US7
使用GB2312字符集的数据库SID为ORA8
确保两个数据库中都装有PLSQL的UTL_RAW包(在sqlplus中使用desc utl_raw命令查看)
在GB2312库的主机上要有指向US7库的connection string (假设该connection string名为US7)。
二、 实施步骤
1、在US7库中建立对含有中文字段的表的视图,例post表,使用语句如下(仅举字段name为例,其他字段亦相同):
create or replace view v_post as
select UTL_RAW.CAST_TO_RAW(name) name1
from post;
注:post表中name字段类型为varchar2,包含中文信息。函数UTL_RAW.CAST_TO_RAW将name字段从varchar2型转换为raw型。建立的视图v_post只含有name1字段。
2、在GB2312库中建立database link,指向US7库,该link的用户为T43,使用语句为:
create database