是这样的,我们公司现用的是ORACLE8i的数据库。因为用公司的难免不便,而我在另一台机子装得有ORACLE9i,所以我想从备份中导到9i中独立操作,以供学习与研究。请教哪位大虾教我如何操作(最好有具体步骤)? 
    先谢谢了!

解决方案 »

  1.   

    利用EXP工具将数据导出来,存成*.DMP的文件,然后再利用IMP工具导入你的9i里,但要注意字符集的差别.另外你可以利用PL/SQL DEVELOPER 2000或者TOAD工具进行这一操作.
      

  2.   

    使用exp/imp,oracle接受从低版本导入到高版本
      

  3.   

    如果你要把oracle8i的数据倒入到oracle9i,那你在用exp到出的时候必须用oracle9i的exp到出.dmp文件,这样才能倒入到orale9i的数据库,或者你用oracl8i的exp到出.dmp,在倒入的使用也用oracle8i的imp倒入到oracle9i中
      

  4.   

    感谢以上几位的帮助,但我按  jiessiezhang(jie) 兄所说的去做了,但还是不能导入,是不是还存在像 lutter(猴子) 兄说的那样字符之间的差异而不能的?还有,哪里有 PL/SQL DEVELOPER 2000 提供免费下载的呢?
      

  5.   

    用什么版本的exp导出,只能用什么相同版本的imp导入,否则可能会出错的!
      

  6.   

    还有个问题是用9i的Exp 不能导出8i的表,其格式为:
       D:\oracle\ora92\bin\imp system/manager@ora8db buffer=104786
          file=d:\oracle\expdat.dmp  log=d:\oracle\expdat.log full=y(被导出的数据库是8i的)是否还要有什么其它的参数?谢谢!
      

  7.   

    我刚试过了将导好的8i数据库.dmp导到9i的版本中,出了很多错误。因为我英文不是很好,所以根据大概意思其提示:
        在作字符替换以及建立表空间时出错了,过后导表时及其它对象时就不能导入了,出现如下错误信息:
        
    Export file created by EXPORT:V08.01.06 via conventional path
    import done in WE8ISO8859P1 character set and UTF8 NCHAR character set
    import server uses ZHS16GBK character set (possible charset conversion)
    export server uses WE8ISO8859P1 NCHAR character set (possible ncharset conversion)
    IMP-00017: following statement failed with ORACLE error 1119:
     "CREATE TABLESPACE "RBSG_SPC" DATAFILE  'D:\M206_DB\DBFILE\RBS01.DBF' SIZE 2"
     "335M       AUTOEXTEND ON NEXT 5242880  MAXSIZE 4095M DEFAULT  STORAGE(INITI"
     "AL 524288 NEXT 524288 MINEXTENTS 8 MAXEXTENTS 2147483645 PCTINCREASE 50) ON"
     "LINE PERMANENT "
    IMP-00003: ORACLE error 1119 encountered
    ORA-01119: error in creating database file 'D:\M206_DB\DBFILE\RBS01.DBF'
    ORA-27040: skgfrcre: create error, unable to create file
    OSD-04002: unable to open file
    O/S-Error: (OS 3) 靠靠靠靠靠?
    IMP-00017: following statement failed with ORACLE error 1119:
     "CREATE TABLESPACE "DATA_SPC" DATAFILE  'D:\M206_DB\DBFILE\DATA01.DBF' SIZE "
     "1460M       AUTOEXTEND ON NEXT 1310720  MAXSIZE 4095M, 'D:\M206_DB\DBFILE\D"
     "ATA02.DBF' SIZE 1024M       AUTOEXTEND ON NEXT 1310720  MAXSIZE 4095M, 'D:\"
     "M206_DB\DBFILE\DATA03.DBF' SIZE 536870912       AUTOEXTEND ON NEXT 1310720 "
     " MAXSIZE 4095M DEFAULT  STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAX"
     "EXTENTS 2147483645 PCTINCREASE 0) ONLINE PERMANENT "
    IMP-00003: ORACLE error 1119 encountered
    ORA-01119: error in creating database file 'D:\M206_DB\DBFILE\DATA01.DBF'
    ORA-27040: skgfrcre: create error, unable to create file
    OSD-04002: unable to open file
    O/S-Error: (OS 3) 靠靠靠靠靠?
    IMP-00017: following statement failed with ORACLE error 12913:
     "CREATE TABLESPACE "TEMP_SPC" DATAFILE  'D:\M206_DB\DBFILE\TEMP01.DBF' SIZE "
     "524288000       AUTOEXTEND ON NEXT 655360  MAXSIZE 4095M DEFAULT  STORAGE(I"
     "NITIAL 65536 NEXT 65536 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0) O"
     "NLINE TEMPORARY "
                                。
                                。
                                。
                                。
                                。
                                。
      

  8.   

    现在有一个备份文件A.DMP,采用的字符集是AMERICAN_AMERICA.WE8ISO8859P1  我想在安装有SIMPLIFIED CHINESE_CHINA.ZHS16GBK字符集的数据库中恢复,请问怎样做?要注意什么?步骤。
        1。SQL>CONNECT SYSTEM/MANAGER      SQL>UPDATE SYS.PROPS$ SET VALUE$='WE8ISO8859P1' WHERE NAME LIKE 'NLS_CHAR%';
        2.修改注册表,NLS_LANG的值为AMERICAN_AMERICA.WE8ISO8859P1
        3。重新启动数据库。
       IMP USER/PA WD FILE=A。DMP FULL=Y LOG = A.TXT
       ok! 
    --------------------------------------------------------------------------------------------------
    1. 2服务器指定字符集与客户字符集相同,与加载数据字符集不一致。  ---- 这类问题一般发生在ORACLE版本升级或重新安装系统时选择了与原来服务器端不同的字符集,而恢复加载的备份数据仍是按原字符集卸出的场合,以及加载从其它使用不同字符集的ORACLE数据库卸出的数据的情况。这两种情况中,不管服务器端和客户端字符集是否一致都无法显示汉字。解决办法见2.2。  2.2 强制加载数据字符集与服务器端字符集一致  ---- 假设要加载数据从原ORACLE数据库卸出时的字符集为US7ASCII,当前ORACLE服务器字符集为WE8ISO8859P1。  ---- 下面提供三种解决方法:  ---- (1) 服务器端重新安装ORACLE  ---- 在重新安装ORACLE 时选择与原卸出数据一致的字符集(本例为US7ASCII)。  ---- 加载原卸出的数据。  ---- 这种情况仅仅使用于空库和具有同一种字符集的数据。  ---- (2)强行修改服务器端ORACLE当前字符集  ---- 在用imp命令加载数据前,先在客户端用sql*plus登录system DBA用户,执行下列SQL语句进行当前ORACLE数据库字符集修改:   SQL > create database  character set US7ASCII 
    * create database character set US7ASCII 
          ERROR at line 1: 
    ORA-01031: insufficient privileges 
    ---- 你会发现语句执行过程中,出现上述错误提示信息,此时不用理会,实际上ORACLE数据库的字符集已被强行修改为US7ASCII,接着用imp命令装载数据。等数据装载完成以后,shutdown 数据库,再startup 数据库,用合法用户登录ORACLE数据库,在sql>命令提示符下,运行select * from V$NLS_PARAMETERS,可以看到ORACLE数据库字符集已复原,这时再查看有汉字字符数据的表时,汉字已能被正确显示。  ---- (3)利用数据格式转储,避开字符集限制  ---- 这种方法主要用于加载外来ORACLE数据库的不同字符集数据。其方法如下:  ---- 先将数据加载到具有相同字符集的服务器上,然后用转换工具卸出为foxbase 格式或access格式数据库,再用转换工具转入到不同字符集的ORACLE数据库中,这样就避免了ORACLE字符集的困扰。目前数据库格式转换的工具很多,象power builder5.0以上版本提供的pipeline,Microsoft Access数据库提供的数据导入/导出功能等。转换方法参见有关资料说明。.  
      

  9.   

    8i 2 9i 
    为什么不用 sqlplus 的 spool 到出表 在9i下用external table 或者 sqlldr
    个人意见 数据量大时使用