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

tfcoder 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 ; 不行,查出的字符为:??????????,我试了好几种编码都不行。我这边不能修改本地的编码方式,因为本地服务器还有其他几个实例,这种情况应该怎么样处理,急。。。
...全文
268 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
求救

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧