異なるバージョンのEXP/IMPの問題


異なるバージョンのEXP/IMPの問題?一般的に、低バージョンから高バージョンへのインポートは問題ありません.面倒なことに、高バージョンのデータを低バージョンにインポートすることです.Oracle 9 iの前に、異なるバージョンのOracle間のEXP/IMPは次の方法で解決できます.
1、高バージョンデータベース上で下バージョンのcatexpを実行する.sql;
2、低バージョンのEXPを使用して高バージョンのデータをエクスポートする;
3、低バージョンのIMPを使用してデータベースを最終バージョンのデータベースにインポートする;
4、高バージョンのcatexpを高バージョンのデータベースで再実行する.sqlスクリプト.
しかし、9 iでは、上記の方法では問題を解決することはできない.EXP/IMPを直接使用すると、EXP-00008:ORACLE error%lu encountered ORA-00904:invalid column nameこれはすでに公表されているBUGであり、Oracle 10まで待つ必要があります.0で解決できます.BUG番号は22617222です.METALINKに行って、このBUGの詳細を確認することができます.
BUGはBUGに帰属します.私たちの仕事はやはりしなければなりません.Oracleのサポートがない前に、私たちは自分で解決します.Oracle 9 iで次のSQLリビルドexu 81 rlsビューを実行します.
 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; /