RDS for Oracleスキーマ/テーブル/特定のテーブル単位のダンプインポート方法【AWS】

RDS for Oracleにてスキーマ以外を指定したダンプインポート方法を紹介します。
ダンプファイルの取得、転送については下記記事を参照してください。
・RDS for Oracleにスキーマ以外を指定してダンプファイルからインポートしたい
スキーマ単位のインポート
スキーマ単位でインポートする方法です。ディレクトリオブジェクト、ダンプファイル名、ログファイル名は適宜読み替えてください。
DECLARE
h1 NUMBER; -- ジョブハンドル
BEGIN
-- インポートジョブの作成(FULL = N、SCHEMA レベルのインポート)
h1 := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'SCHEMA', remote_link => NULL);
-- ダンプファイルの指定
DBMS_DATAPUMP.ADD_FILE(handle => h1, filename => 'test_full.dmp', directory => 'DATA_PUMP_DIR');
-- ログファイルの指定(必要に応じて)
DBMS_DATAPUMP.ADD_FILE(handle => h1, filename => 'import_log.log', directory => 'DATA_PUMP_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
-- インポートジョブの実行
DBMS_DATAPUMP.START_JOB(h1);
END;
/
テーブルだけのインポート
テーブル単位でインポートする方法です。ディレクトリオブジェクト、ダンプファイル名、ログファイル名は適宜読み替えてください。
テーブルだけインポート
DECLARE
h1 NUMBER; -- ジョブハンドル
BEGIN
-- インポートジョブの作成(TABLEモードのインポート)
h1 := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'TABLE');
-- ダンプファイルの指定
DBMS_DATAPUMP.ADD_FILE(handle => h1, filename => 'test_full.dmp', directory => 'DATA_PUMP_DIR');
-- ログファイルの指定(必要に応じて)
DBMS_DATAPUMP.ADD_FILE(handle => h1, filename => 'import_log.log', directory => 'DATA_PUMP_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
-- 既存テーブルに対する処理
DBMS_DATAPUMP.SET_PARAMETER(h1,'TABLE_EXISTS_ACTION','REPLACE');
-- インポートジョブの実行
DBMS_DATAPUMP.START_JOB(h1);
-- ジョブの終了
DBMS_DATAPUMP.DETACH(h1);
END;
/
特定のテーブルだけインポート
特定のテーブル単位でインポートする方法です。インポートしたいテーブル名、ディレクトリオブジェクト、ダンプファイル名、ログファイル名は適宜読み替えてください。
複数テーブルをインポートしたい場合は
DECLARE
h1 NUMBER; -- ジョブハンドル
BEGIN
-- インポートジョブの作成(TABLEモードのインポート)
h1 := DBMS_DATAPUMP.OPEN(operation => 'IMPORT', job_mode => 'TABLE');
-- ダンプファイルの指定
DBMS_DATAPUMP.ADD_FILE(handle => h1, filename => 'test_full.dmp', directory => 'DATA_PUMP_DIR');
-- ログファイルの指定(必要に応じて)
DBMS_DATAPUMP.ADD_FILE(handle => h1, filename => 'import_log.log', directory => 'DATA_PUMP_DIR', filetype => DBMS_DATAPUMP.KU$_FILE_TYPE_LOG_FILE);
-- 既存テーブル(TEST1という名前のテーブル)のみインポート
DBMS_DATAPUMP.METADATA_FILTER(h1,'NAME_LIST','''TEST1''','TABLE');
-- 既存テーブルに対する処理
DBMS_DATAPUMP.SET_PARAMETER(h1,'TABLE_EXISTS_ACTION','REPLACE');
-- インポートジョブの実行
DBMS_DATAPUMP.START_JOB(h1);
-- ジョブの終了
DBMS_DATAPUMP.DETACH(h1);
END;
/
以上です。参考になれば幸いです。