字符集的问题了,这样的问题在论坛有很多,查找一下吧 。
两个方法
1) 修改字符集,源和数据库相同,倒出时候的字符集也需要注意
2) 修改DUMP文件,修改它的二进制文件格式

解决方案 »

  1.   

    在现在的导入机器中:
    修改注册表中HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG为:U7ASCII
      

  2.   

    修改注册表中HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG为:US7ASCII
    按照你说的作了
    问题是我IMP后输入用户名和密码都不对了
      

  3.   

    可能是字符集问题,或者是DMP导出的Oracle版本和IMP导入的版本不一致,可能导出版本比较高
      

  4.   

    两种可能,一就是字符集不对,二就是版本不对了。
    你可以用UltraEdit打开DMP文件,可以看到版本号。
    然后查看DMP文件第二第三字节,显示的就是字符集 
    比如001F 
    SQL> select nls_charset_name(to_number('001F','xxxx')) from dual; NLS_CHARSET_NAME(TO_NUMBER('001F','XXXX')) 
    -------------------------------------------------------------------------------- 
    WE8ISO8859P1
      

  5.   

    是字符集的问题
    1是us7ascii
    852是zhs16gbk
    这个是国内常用的字符集,修改一下你的dmp文件
      

  6.   

    IMP-00016: 不支持要求的字符集转换(从类型1到852)
    你的数据库字符集不是us7ascii
    注意nls_lang与数据库字符集要一致!
      

  7.   

    谢谢大家的回答:(win2000+oracle8.17 us7ascii)
    服务器上的
    HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG改为:US7ASCII
    发现登入都登入不了
    和HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0中NLS_LANG的字符集有关系吗??
      

  8.   

    TO :penitent(只取一瓢)
        
       我想问你一下,你有更改dmp文件的字符集的工具软件吗?
       
      

  9.   

    没有,这么办我现在把服务器的注册表三个NLS_LANG给为AMERICAN_AMERICA.US7ASCII是这样的:
    Import: Release 8.1.7.0.0 - Production on Wed May 7 08:59:55 2003(c) Copyright 2000 Oracle Corporation.  All rights reserved.Username: anbao
    Password: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 >Enter insert buffer size (minimum is 8192) 30720>Export file created by EXPORT:V08.01.07 via conventional path
    import done in US7ASCII character set and US7ASCII NCHAR character set
    List contents of import file only (yes/no): no >Ignore create error due to object existence (yes/no): no >Import grants (yes/no): yes > noImport table data (yes/no): yes > yesImport entire export file (yes/no): no >
    Username:Enter table(T) or partition(T:P) names. Null list means all tables for user
    Enter table(T) or partition(T:P) name or . if done: