通过db_link如何通过convert函数修改Oracle字符集

tfcoder java工程师  2013-06-25 11:56:14
小弟现在做一个项目,需要用到另外一数据库,我现在在本地建立db_link将数据迁移至本地,但是那个数据库编码为US7ASCII,本地客户端数据库 编码为ZHS16GBK 于是产生中文乱码,类似于=p:~OX9zK0>V4z?*5c#1 这样一些字符串。 现在通过convert 函数查询,查询语句为select convert(nsrmc,'US7ASCII','ZHS16GBK') from dj_nsrxx@dblink_gs1 ; 不行,查出的字符为:??????????,我试了好几种编码都不行。我这边不能修改本地的编码方式,因为本地服务器还有其他几个实例,这种情况应该怎么样处理,急。。。
...全文
185 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
tfcoder 2013-06-25
引用 1 楼 bonlog 的回复:
先确认一番: 是数据库里的信息乱码?还是你的连接乱码?还是显示乱码? 再有会对性处理。 你的以上描述,不全。
小弟新手,不太明白你说的意思啊,现在问题是,在远程的那台服务器上查询显示是正常的,但本地在PLSQL上通过db_link查询显示 中文乱码,其它数值和英文字符都显示正常。
回复
bonlog 2013-06-25
先确认一番: 是数据库里的信息乱码?还是你的连接乱码?还是显示乱码? 再有会对性处理。 你的以上描述,不全。
回复
cowboyhn 2013-06-25
引用 楼主 tf949627780 的回复:
小弟现在做一个项目,需要用到另外一数据库,我现在在本地建立db_link将数据迁移至本地,但是那个数据库编码为US7ASCII,本地客户端数据库 编码为ZHS16GBK 于是产生中文乱码,类似于=p:~OX9zK0>V4z?*5c#1 这样一些字符串。 现在通过convert 函数查询,查询语句为select convert(nsrmc,'US7ASCII','ZHS16GBK') from dj_nsrxx@dblink_gs1 ; 不行,查出的字符为:??????????,我试了好几种编码都不行。我这边不能修改本地的编码方式,因为本地服务器还有其他几个实例,这种情况应该怎么样处理,急。。。
通过DBLINK查询过来时已经是乱码,这时再用CONVERT没有用。 先在对端建个视图,转换成RAW类型 CREATE VIEW V_DJ_NSRXX AS SELECT utl_raw.cast_to_raw(nsrmc) nsrmc FROM dj_nsrxx; 然后再通过DBLINK查询 SELECT utl_raw.cast_to_varchar2(nsrmc) FROM v_dj_nsrxx@dblink_gs1;
回复
kongxv0001 2013-06-25
你本地操作系统的字符集全不全?把服务器的字符集复制一份到本地试试
回复
tfcoder 2013-06-25
求救
回复
相关推荐
发帖
Oracle
创建于2007-09-28

1.6w+

社区成员

Oracle开发相关技术讨论
申请成为版主
帖子事件
创建了帖子
2013-06-25 11:56
社区公告
暂无公告