impdbで別テーブルデータを入れる

impdp(Data Pump Import)を使用して特定のテーブルのデータを別のテーブルにインポートする際には、リマッピング機能を使用します。具体的には、REMAP_TABLEオプションを使用して、ソーステーブルからターゲットテーブルへのデータをリマッピングできます。

以下に、impdpを使用して特定のテーブルのデータを別テーブルにインポートする手順を示します。

手順

1. Data Pump Exportを実行してダンプファイルを作成

まず、対象のテーブルのデータをエクスポートして、ダンプファイルを作成します。この例では、source_tableのデータをエクスポートします。

expdp system/password@db schemas=your_schema tables=source_table directory=DATA_PUMP_DIR dumpfile=source_table.dmp logfile=export.log

2. Data Pump Importを実行してテーブルをインポート

次に、impdpを使用して、ダンプファイルからデータをインポートします。REMAP_TABLEオプションを使用して、source_tableからtarget_tableへのリマッピングを行います。

impdp system/password@db schemas=your_schema directory=DATA_PUMP_DIR dumpfile=source_table.dmp logfile=import.log remap_table=your_schema.source_table:target_table

以下に具体的な例を示します。

  • エクスポートするテーブル名: source_table
  • インポート先の新しいテーブル名: target_table
  • スキーマ名: your_schema
  • データポンプディレクトリ名: DATA_PUMP_DIR

ダンプファイルのエクスポート

expdp system/password@db schemas=your_schema tables=source_table directory=DATA_PUMP_DIR dumpfile=source_table.dmp logfile=export.log

ダンプファイルのインポート(リマッピング)

impdp system/password@db schemas=your_schema directory=DATA_PUMP_DIR dumpfile=source_table.dmp logfile=import.log remap_table=your_schema.source_table:target_table

注意事項

  1. 宛先テーブルの存在:
  • target_tableが既に存在している必要があります。もし存在していない場合は、事前に宛先テーブルを作成してください。
  1. データの整合性:
  • データのインポート後、データが正しくインポートされているか、整合性を確認する必要があります。
  1. アクセス権限:
  • expdpおよびimpdpを実行するためには、適切なアクセス権限が必要です(例:DATAPUMP_EXP_FULL_DATABASEDATAPUMP_IMP_FULL_DATABASEなどのロール)。
  1. ディレクトリの設定:
  • DATA_PUMP_DIRディレクトリはOracleに設定されている必要があります。ディレクトリエイリアスが設定されていない場合や使用するディレクトリを変更する場合は、以下のSQLコマンドを実行します:
CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS '/path/to/directory';
GRANT READ, WRITE ON DIRECTORY DATA_PUMP_DIR TO your_schema;

まとめ

impdpコマンドを使用して特定のテーブルのデータを別テーブルにリマッピングするには、以下の手順を実行します:

  1. データのエクスポート: expdpコマンドでダンプファイルを作成。
  2. データのインポート: impdpコマンドで、REMAP_TABLEオプションを使用してデータをリマッピング。

この方法により、特定のテーブルのデータを別のテーブルにインポートすることができます。

コメント

タイトルとURLをコピーしました