数据库导入:原来的数据库到处的文件是8.0.5,但是不知道是何种语言,
目标数据库是8.1.7,产生的提示信息是:
Connected to: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
With the Partitioning option
JServer Release 8.1.7.0.0 - ProductionImport file: EXPDAT.DMP > 040820full.dmpEnter insert buffer size (minimum is 8192) 30720>IMP-00016: required character set conversion (type 31 to 852) not supported
IMP-00000: Import terminated unsuccessfully需要如何解决
-------------------------
前有帖子  http://community.csdn.net/Expert/topic/3735/3735863.xml?temp=.6238977

解决方案 »

  1.   

    如下操作在 windows 下进行------------------------字符集不匹配:
    SQL> select nls_charset_name('31') from dual;NLS_CHARSET_
    ------------
    WE8ISO8859P1SQL> select nls_charset_name('852') from dual;NLS_CHAR
    --------
    ZHS16GBK================================================================
    8.0.5 -> 8.1.7  
    思路: 修改 817 库的字符集为 "31" -> 导入数据 -> 恢复为 "852"
    字符集修改: 是 修改数据字典;修改注册表 两步.强烈提醒:
       -----------------------------------------------------------------------
       1.先对当前数据库进行备份,再导入新的数据。以防在导入过程中产生意外。
       2.由于字符集的不同,数据不一定可以完全进行使用。
       -----------------------------------------------------------------------具体做法:
        1.修改 817 库的字符集.
         1.1 修改注册表
             "HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE" 中的 "NLS_LANG" 键值
                "SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 改成 "American_America.WE8ISO8859P1"         注意: 根据安装的不同,主要用{Oracle 库的HOME}目录
               目录也许为:  "HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0"  <- (HOME1,HOME2...)
               视 注册表 里为准.
         1.2 修改 数据字典 
             SQL>CONNECT sys/chanet@oradb;
             SQL>UPDATE sys.props$ 
                     SET value$='WE8ISO8859P1' WHERE name='NLS_CHARACTERSET';
             SQL>UPDATE sys.props$ 
                     SET value$='WE8ISO8859P1' WHERE name='NLS_NCHAR_CHARACTERSET';
             SQL>commit;
         
         1.3 重启Oracle库"服务"    2. 导入数据库.(imp....)    3. 修改会之前的 "852" 字符集.
          3.1 修改数据字典.
            SQL>CONNECT sys/chanet@oradb;
            SQL>UPDATE sys.props$ 
                    SET value$='ZHS16GBK' WHERE name='NLS_CHARACTERSET';
            SQL>UPDATE sys.props$ 
                    SET value$='ZHS16GBK' WHERE name='NLS_NCHAR_CHARACTERSET';
            SQL>commit;      3.2 修改注册表.
             "HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE" 中的 "NLS_LANG" 键值
                "American_America.WE8ISO8859P1" 改回 "SIMPLIFIED CHINESE_CHINA.ZHS16GBK"      3.3 重启数据库 "服务"
      

  2.   

    楼上的太复杂了直接用ultraedit打开dmp文件,把第二个字节的1F改成0354就可以了.