Копировать таблицы, пакеты и процедуры из одной схемы в другую в Oracle - PullRequest
0 голосов
/ 18 октября 2019

Я использую базу данных оракула. Я обращаюсь к этой базе данных через двух пользователей. Это userA и userB. Я создал несколько таблиц, пакетов, процедур и т. Д. В схеме userA. Здесь, после того, как я хочу продолжить свою работу, используя 'userB' и удалить userA.

Я предоставил разрешения от userA для userB и создал таблицу с отдельным именем, выбрав все записи. Потом я увидел, что триггеры и индексы не созданы. Я хочу знать лучший способ для копирования таблиц, пакетов и процедур с данными от одного пользователя к другому.

1 Ответ

1 голос
/ 18 октября 2019

Вы можете скопировать таблицы, выполнив резервное копирование с помощью expdp, а затем импортировав с помощью impdp с параметрами remap_schema / remap_tablespace (пример в этот ответ ).

Вы не можете использовать этот метод для пакетов, процедур или триггеров, поскольку документация impdp гласит:

Ограничения

  • Отображение может бытьНа 100 процентов выполнено, потому что есть определенные ссылки на схемы, которые Import не может найти. Например, импорт не найдет ссылки на схемы, встроенные в тело определений типов, представлений, процедур и пакетов.
  • Для триггеров REMAP_SCHEMA влияет только на владельца триггера.

Для их передачи вам необходимо отредактировать исходный код триггеров / pacakages / процедуры / и т. Д. а затем перекомпилируйте его в новой схеме, чтобы ссылки на схемы в коде также были обновлены.

...