最好还是用8的EXP。用高版本的EXP导出在导入到低版本的时候可能会出问题。

解决方案 »

  1.   

    应该可以的,exp是一个逻辑的备份,与机器及版本无关。
    你用exp将老数据导出,再在9i上使用imp可以进行导入了,具体的执行可以参看exp及imp的参数说明
      

  2.   

    你可以查看exp的帮助文件,很详细
    exp help=y 自己照着做就可以了
      

  3.   

    好象有问题的,
    你用8I的EXP,
    再建到9I的连接串,还用8I的IMP USER/PASS@连接串导入
      

  4.   

    ycbao(ycbao):
    我知道你的办法是可行的,但是我现在找不到8的安装盘,8的数据库不在本地,我这里只有8i和9i的客户端,我用8i做EXP报数据库视图版本错误,用9i报非法的ALTER SESSION选项,错误号2248,我不知道错在哪里,望赐教
      

  5.   

    这个话题已经比较陈旧了,ORACLE不同版本间进行EXP/IMP的时候,一般原则是用低版本的进行EXP,然后用高版本的进行IMP;如果版本跨越太大,可以用一个中间版本的数据库来过渡即可。
      

  6.   

    应该是在 8i下导出 ,再在9i下导入
    只要你装了客户端就可以了!把具体导出用的命令和oracle报的错误发上来看看!
      

  7.   

    我现在只有8i的版本,我怎样EXP 8的数据?我现在没有别的选择
      

  8.   

    从低版本导到高版本会有问题,不是那么容易可以解决的,建议你去metelink上面查查
      

  9.   

    8i执行的结果C:\>exp username/password@server  tables=a file=c:\dd.dmpExport: Release 8.1.6.0.0 - Production on 星期二 4月 13 15:48:50 2004(c) Copyright 1999 Oracle Corporation.  All rights reserved.
    连接到: Oracle8 Enterprise Edition Release 8.0.4.0.0 - Production
    PL/SQL Release 8.0.4.0.0 - Production
    EXP-00037: 导出视图与数据库版本不兼容
    EXP-00000: 导出终止失败9i执行的结果C:\>exp username/password@server tables=a file=c:\asd.dmpExport: Release 9.0.1.1.1 - Production on 星期二 4月 13 13:49:27 2004(c) Copyright 2001 Oracle Corporation.  All rights reserved.
    EXP-00056: 遇到 ORACLE 错误 2248
    ORA-02248: 非法的ALTER SESSION选项
    EXP-00000: 导出终止失败
    数据库版本8.0.4.0.0
      

  10.   

    回复人: newhu(雨过天晴) ( ) 信誉:100  2004-04-13 16:02:00  得分:0 
     
     
      从低版本导到高版本会有问题,不是那么容易可以解决的,建议你去metelink上面查查
      
     
    metelink具体地址是多少?? 谢谢
      

  11.   

    不同版本的EXP/IMP问题一般来说,从低版本导入到高版本问题不大,麻烦的是将高版本的数据导入到低版本中,在Oracle9i之前,不同版本Oracle之间的EXP/IMP可以通过下面的方法来解决:1、在高版本数据库上运行低版本的catexp.sql;2、使用低版本的EXP来导出高版本的数据;3、使用低版本的IMP将数据库导入到低版本数据库中;4、在高版本数据库上重新运行高版本的catexp.sql脚本。但在9i中,上面的方法并不能解决问题。如果直接使用底版本EXP/IMP会出现如下错误:EXP-00008: ORACLE error %lu encounteredORA-00904: invalid column name这已经是一个公布的BUG,需要等到Oracle10.0才能解决,BUG号为2261722,你可以到METALINK上去查看有关此BUG的详细信息。BUG归BUG,我们的工作还是要做,在没有Oracle的支持之前,我们就自己解决。在Oracle9i中执行下面的SQL重建exu81rls视图即可。CREATE OR REPLACE view exu81rls (objown,objnam,policy,polown,polsch,polfun,stmts,chkopt,enabled,spolicy) AS select u.name, o.name, r.pname, r.pfschma, r.ppname, r.pfname, decode(bitand(r.stmt_type,1), 0,'', 'SELECT,') || decode(bitand(r.stmt_type,2), 0,'', 'INSERT,') || decode(bitand(r.stmt_type,4), 0,'', 'UPDATE,') || decode(bitand(r.stmt_type,8), 0,'', 'DELETE,'), r.check_opt, r.enable_flag, DECODE(BITAND(r.stmt_type, 16), 0, 0, 1) from user$ u, obj$ o, rls$ r where u.user# = o.owner# and r.obj# = o.obj# and (uid = 0 or uid = o.owner# or exists ( select * from session_roles where role='SELECT_CATALOG_ROLE') ) / grant select on sys.exu81rls to public; /