impdpを使用して からOLD_SCHEMA
にダンプをインポートしましたNEW_SCHEMA
。10 個のパッケージを除いて、すべてのパッケージは正常に見えます。エラーは、それらが古いスキーマを参照していることです。つまり、それらのテーブル名にOLD_SCHEMA
. すなわち、OLD_SCHEMA.table_name
。正しいパッケージと同じように見える同義語を確認しました。
それを修正する方法はありますか?
この問題を解決するには、必要なものに応じていくつかの可能性があります。
インポート コマンドで次のオプションを使用しREMAP_SCHEMA
ます。
REMAP_SCHEMA=source_schema:target_schema
パッケージからスキーマ名を削除し、シノニムのみを使用してください。これにより、異なるスキーマで同じ名前のオブジェクトを持つことが制限されます。
すべてのパッケージからソースを抽出し、正規表現でスキーマの名前を変更し、新しいデータベースでコードを再コンパイルしてソースを再注入するスクリプトを用意します。ソースを抽出するには、dbms_metadata.get_clob
;を使用します。それから、 のテキストを変更しなければならない部分は少しトリッキーになりますが、CLOB
楽しいです。