DBMS_DataPumpを使用してすべてのデータベースリンクをインポートします
-
29-09-2020 - |
質問
ソースDBバージョン:11.2.0.3
宛先DBバージョン:12.1.0.2
DBMS_DataPumpを使用して、あるデータベースから別のデータベースへのすべてのデータベースリンクをインポートしようとしています。コードは上記の宛先DB上で実行されており、データベースリンクを介して上記の送信元DBからDBリンクを取得しています。
過去にDBMS_DATAPUMP.METADATA_FILTERを使用して、特定のオブジェクトをインポートします(関数やプロシージャーなど)。ただし、次の項目はORA-39001を返します。無効な引数値:
dbms_datapump.metadata_filter(h1,'INCLUDE_PATH_EXPR','IN (''DATABASE LINK'')');
.
したがって、私はORA-39001も返品された複数版を試しました:
dbms_datapump.metadata_filter(h1,'INCLUDE_PATH_EXPR','IN (''DATABASE LINKS'')');
.
私はここで基本的なものを欠けている必要がありますが、同じ検索で「DBMS_DataPump」と「データベースリンク」を持つ検索結果は、データベースリンクをインポートする方法で検索結果を検索しています。データベースリンクを直接インポートする方法ではありません。
私は、データベースリンクを直接インポートできるようにしました:
select DBMS_LOB.SUBSTR@dblinkimp(DBMS_METADATA.GET_DDL@dblinkimp
('DB_LINK', '[DBlinkName]', '[SchemaName]')) from dual@dblinkimp;
.
その後、EXECUTE IMMEDIATEを使用して上記のステートメントから出力を実行しますが、これは11.2.0.4から始まる有効なオプションではありません(Metalink Doc ID 1905221.1を参照)。
解決
DATABASE LINK
またはDATABASE LINKS
ではなく、DB_LINK
です。DATABASE_EXPORT_OBJECTS
、SCHEMA_EXPORT_OBJECTS
およびTABLE_EXPORT_OBJECTS
に有効な値を見つけることができます。
所属していません dba.stackexchange