utl_raw函数讲的很详细值得看看

可以了解了解

首先都是roalce数据库,网络通的,直接做个远程连接就可以了,心理偷着乐了一把,后来发现我高兴得早了点,原因是,对方的数据库字符集(AMERICAN_AMERICA.ZHS16GBK)和本地端的数据库字符集(AMERICAN_AMERICA.WE8ISO8859P1)不兼容,而原表中又存在中问字符,后来翻阅相关文档,找到资料,在双方的数据库中不用修改任何东西,使用utl_raw包,就能解决这一问题:

1:在对方端,由于不能直接访问原来的表,所以让对方将该表中的中文字符使用utl_raw.cast_to_raw将中文转换成raw类型后放在一个view中

Create view v_t as select id,data,cardid,utl_raw.cast_to_raw(name) from t;

2:再将视图中的raw转换成varchar2类型就可以了

现在可以直接insert了:

Insert into birth_his select id,data,cardid,utl_raw.cast_to_varchar2(name) from ;

这样放在本地的数据库中,访问的时候就不会出现乱码。

注:

cast_to_raw()要在源库用

cast_to_varchar2()要在目标库用

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐