小弟现在做一个项目,需要用到另外一数据库,我现在在本地建立db_link将数据迁移至本地,但是那个数据库编码为US7ASCII,本地客户端数据库 编码为ZHS16GBK 于是产生中文乱码,类似于=p:~OX9zK0>V4z?*5c#1 这样一些字符串。 现在通过convert 函数查询,查询语句为select convert(nsrmc,'US7ASCII','ZHS16GBK') from dj_nsrxx@dblink_gs1 ; 不行,查出的字符为:??????????,我试了好几种编码都不行。我这边不能修改本地的编码方式,因为本地服务器还有其他几个实例,这种情况应该怎么样处理,急
Oracle数据库编码

解决方案 »

  1.   

    小弟新手,不太明白你说的意思啊,现在问题是,在远程的那台服务器上查询显示是正常的,但本地在PLSQL上通过db_link查询显示 中文乱码,其它数值和英文字符都显示正常。
      

  2.   

    通过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;