在CSDN中找到了这个方法:希望能有更好的,不想出一个月的差!
使用一点点技巧,就可以使导出/导入在不同的字符集的数据库上转换数据。这里需要一个2进制文件编辑工具即可,如uedit32。用编辑方式打开导出的dmp文件,获取2、3字节的内容,如00 01,先把它转换为10进制数,为1,使用函数NLS_CHARSET_NAME即可获得该字符集:
SQL> select nls_charset_name(1) from dual;
NLS_CHARSET_NAME(1)
-------------------
US7ASCII
可以知道该dmp文件的字符集为US7ASCII,如果需要把该dmp文件的字符集换成ZHS16GBK,则需要用NLS_CHARSET_ID获取该字符集的编号:
SQL> select nls_charset_id('zhs16gbk') from dual;
NLS_CHARSET_ID('ZHS16GBK')
--------------------------
              852
把852换成16进制数,为354,把2、3字节的00 01换成03 54,即完成了把该dmp文件字符集从us7ascii到zhs16gbk的转化,这样,再把该dmp文件导入到zhs16gbk字符集的数据库就可以了

解决方案 »

  1.   

    http://www.eygle.com/special/NLS_CHARACTER_SET_04.htm
      

  2.   

    最简单的方法: sql>update sys.props$ set value$='ZHS16GBK' where name like 'NLS_CHAR%';
     sql>commit;
     重新启动数据库。
     修改注册表NLS_LANG的值为为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 倒出数据 到客户那里
     建立相应的表空间,用户
     然后导入数据
      

  3.   

    使用SCAN后在SCAN.err里出现下列错误,什么意思?怎么解决??
    User  : BGFA
    Table : DM_HYFL
    Column: NAME
    Type  : VARCHAR2(32)
    Number of Exceptions         : 12        
    Max Post Conversion Data Size: 16        ROWID              Exception Type      Size Cell Data(first 30 bytes)     
    ------------------ ------------------ ----- ------------------------------
    AAAGINAADAAALrzAAA lossy conversion         ????                      
    AAAGINAADAAALrzAAB lossy conversion         ????                      
    AAAGINAADAAALrzAAC lossy conversion         ???¨                      
    AAAGINAADAAALrzAAD lossy conversion         ????                      
    AAAGINAADAAALrzAAE lossy conversion         ????                      
    AAAGINAADAAALrzAAF lossy conversion         ????                      
    AAAGINAADAAALrzAAG lossy conversion         ????                      
    AAAGINAADAAALrzAAH lossy conversion         ????                      
    AAAGINAADAAALrzAAI lossy conversion         ??·?                      
    AAAGINAADAAALrzAAJ lossy conversion         ????                      
    AAAGINAADAAALrzAAK lossy conversion         ?ú??                      
    AAAGINAADAAALrzAAL lossy conversion         ???¨                      
    ------------------ ------------------ ----- ------------------------------
      

  4.   

    User  : BGFA
    Table : DM_GZFL
    Column: NAME
    Type  : VARCHAR2(16)
    Number of Exceptions         : 3         
    Max Post Conversion Data Size: 32        ROWID              Exception Type      Size Cell Data(first 30 bytes)     
    ------------------ ------------------ ----- ------------------------------
    AAAGIKAADAAALrDAAA lossy conversion         ????                      
    AAAGIKAADAAALrDAAB exceed column size    32 ???¨?¤??              
    AAAGIKAADAAALrDAAB lossy conversion         ???¨?¤??              
    AAAGIKAADAAALrDAAC lossy conversion         ????                      
    ------------------ ------------------ ----- ------------------------------
      

  5.   

    使用工具,最为简单,推荐 plsql developer,我曾经在一个项目中把 usacii7字符集转换成 gbk的。