Oracleの同じユーザーのテーブル間でデータを移行する方法を教えてください。
Oracle同一ユーザ間での表データ移動には、以下のような方法が使用できます。
- エクスポート
- impdp
expdp username/password@source_database tables=source_table directory=dpump_dir dumpfile=source_table.dmp logfile=source_table_exp.log
impdp username/password@target_database tables=target_table directory=dpump_dir dumpfile=source_table.dmp logfile=source_table_imp.log
- SELECT文を使用して、元のテーブルからターゲットテーブルにデータを挿入する Oracle INSERT INTO SELECT ステートメント
INSERT INTO target_table (column1, column2, ..., columnN)
SELECT column1, column2, ..., columnN
FROM source_table;
- Oracle SQL Developerツール:Oracle SQL Developerツールを利用し、ソース表を右クリックして「エクスポート」を選択、その後ターゲット表や関連オプションを選択することでデータ移行を実施します。
- PL/SQLコードを使用する: PL/SQLコードでカーソルまたはINSERT INTO SELECTステートメントを使用して、ソーステーブルからデータを取得し、ターゲットテーブルに挿入します。
DECLARE
CURSOR c_data IS
SELECT column1, column2, ..., columnN
FROM source_table;
BEGIN
FOR r_data IN c_data LOOP
INSERT INTO target_table (column1, column2, ..., columnN)
VALUES (r_data.column1, r_data.column2, ..., r_data.columnN);
END LOOP;
COMMIT;
END;
具体的な状況に合わせて適切な方法を選び、データを転送する一般的な方法を上記に示します。