首先都是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()要在目标库用