如果要将9i中的对象导出来给817用,你要在9i上运行817的UTXEXP.SQL,然后用9i的EXP导出来,再用817的IMP导进去。

解决方案 »

  1.   

    老大,我在oracle817的安装目录下没有找到UTXEXP.SQL这个文件。在哪呀?
      

  2.   

    在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;   
        
      /   
      1、在高版本数据库上运行底版本的catexp.sql;   
        
      2、使用低版本的EXP来导出高版本的数据;   
        
      3、使用低版本的IMP将数据库导入到底版本数据库中;   
        
      4、在高版本数据库上重新运行高版本的catexp.sql脚本。这样看看。