我有两台LINUX服务器都安装了oracle10数据库.A服务器上:linux服务器4,ORACLE10G字符集合:
select userenv('language') from dual;USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK     客户端上执行:$:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK$:exp 数据库成功形成文件AAA.DMP.在服务器B上,LINUX服务器5.3,ORACLE10G字符集为:AMERICAN_AMERICA.WE8ISO8859P1
设置客户端为:$:export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1$imp 倒入AAA.DMP成功.但查看倒入的数据库,汉字都为乱码.这里肯定是A数据库是ZHS16GBK字符集,而B数据库是WE8ISO8859P1
引起的,请问应该怎样解决?,

解决方案 »

  1.   

    把数据库的字符集修改一下:
    参考:
    Oracle 字符集的查看和修改
    http://blog.csdn.net/tianlesoftware/archive/2009/12/02/4915223.aspx
    中的 五. 修改oracle的字符集 
    ------------------------------------------------------------------------------ 
    Blog: http://blog.csdn.net/tianlesoftware 
    网上资源: http://tianlesoftware.download.csdn.net 
    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx 
    DBA1 群:62697716(满); DBA2 群:62697977(满)
    DBA3 群:62697850   DBA 超级群:63306533;     
    聊天 群:40132017
    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请
      

  2.   

    谢谢版主tianlesoftware的回复。
    现在我的两台服务器都是生产机,那台都不能随便更改和停机。只是把A服务器的数据合并到B服务器。改了字符集会不会影响其他系统的运行。
      

  3.   

    tianlesoftware:
    字符集不让修改,说ZHS16GBK不是WE8ISO8859P1的超集
      

  4.   

       可以通过EltraEdit来设置导出的dmp里的编码 然后再执行导入
      

  5.   

       具体参考下:
        http://www.cnblogs.com/chinhr/archive/2010/01/19/1651502.html