Копирование из одной базы данных в другую с помощью oracle sql developer - соединение не выполнено

Я пытаюсь скопировать таблицу из одной базы данных в другую с помощью разработчика oracle sql. У меня есть имя пользователя, пароль и SID.

copy from uname1/[email protected] to uname2/[email protected] insert table1 (*) using (select * from message_table);

Однако я получаю ошибку connection failed.

Две базы данных присутствуют на разных хостах (имя хоста отличается в свойствах подключения).

Таблица имеет 5 миллионов записей и слишком громоздка для экспорта/импорта

Ответы

Ответ 1

Команда copy - это команда SQL * Plus (а не команда SQL Developer). Если у вас есть настройки записей tnsname для SID1 и SID2 (например, попробуйте tnsping), вы сможете выполнить свою команду.

Другое предположение состоит в том, что таблица1 имеет те же столбцы, что и message_table (а столбцы имеют только следующие типы данных: CHAR, DATE, LONG, NUMBER или VARCHAR2). Кроме того, с помощью команды insert вы должны быть обеспокоены первичными ключами (например, что вы не вставляете повторяющиеся записи).

Я попробовал вариант вашей команды в SQL * Plus (без ошибок):

copy from scott/[email protected] to scott/[email protected] create new_emp using select * from emp;

После выполнения вышеуказанного оператора я также обрезаю таблицу new_emp и выполнил следующую команду:

copy from scott/[email protected] to scott/[email protected] insert new_emp using select * from emp;

С помощью SQL Developer вы можете сделать следующее для аналогичного подхода к копированию объектов:

  • На панели инструментов выберите "Инструменты" > "Копировать базу данных".

  • Определите исходные и целевые соединения с параметрами копирования, которые вы хотели бы. enter image description here

  • Для типа объекта выберите таблицу (ы). enter image description here

  • Укажите конкретные таблицы (например, таблицу 1). enter image description here

Подход команды копирования устарел, и его функции не обновляются с выпуском новых типов данных. Существует ряд более современных подходов к этому, например, к насосу данных Oracle (даже для таблиц).