Копирование нескольких таблиц из одной базы данных в другую
У меня есть 160 таблиц в одной базе данных. Требование - скопировать их в другую базу данных.
База данных: Oracle с использованием инструмента TOAD.
Пример:
База данных A: 160 таблиц
База данных B: хотите скопировать все 160 таблиц из базы данных A в B.
Я знаю, что могу написать ссылку на БД для одной таблицы, но хочу скопировать все 160 таблиц из другой базы данных. это возможно?
2 ответа
Я бы предложил стандартную функцию DATA PUMP. Вам нужно экспортировать все 160 таблиц из источника, используя EXPDP
а затем импортировать их в базу данных назначения, используя IMPDP
,
Смотрите документацию, чтобы узнать больше о DATA PUMP.
Я считаю, что большинство инструментов на основе графического интерфейса, таких как TOAD
, SQL Developer
и т.д. имеет функции экспорта и импорта.
Учитывая, что вам нужны только таблицы / данные, и вы не беспокоитесь об индексах и ограничениях, и учитывая, что вы можете использовать DBLINK, вы можете использовать простой скрипт для копирования всех таблиц с удаленного сервера на локальный сервер:
BEGIN
FOR C IN (SELECT * FROM USER_TABLES@REMOTEDB) LOOP
EXECUTE IMMEDIATE 'CREATE TABLE ' || C.TABLE_NAME || ' AS (SELECT * FROM ' || C.TABLE_NAME || '@REMOTEDB)';
END LOOP;
END;
/
Если это не вариант, DATA PUMP действительно должен использоваться, как уже говорилось в @LalitKumarB.