Ссылки на таблицы в другой схеме в Oracle - PullRequest
0 голосов
/ 20 февраля 2019

Я хотел бы сослаться на несколько таблиц в другой схеме без префикса схемы или изменения сеанса.

У меня есть следующий запрос -

Select * from schema1.app_table 

Есть несколько подобных запросов впакеты с префиксом схемы.

Я должен экспортировать таблицы в другую схему.Я действительно не хочу менять префикс схемы во всех пакетах.

Я попробовал синонимы, и, к сожалению, это не сработало.

1 Ответ

0 голосов
/ 20 февраля 2019

Волшебства нет.

Вы меняете схему, в которой находятся таблицы.Обратите внимание на мое использование слова «изменить».Это означает, что вы должны «изменить» все, что ссылается на таблицы.

Если вы ненавидите качество, вы можете попробовать это: создайте синоним в старой схеме, который ссылается на таблицу в новой схеме.В вашем примере давайте назовем новую схему "blammySchema", а таблицу назовем "kapow".

Вот несколько шагов:

  1. "Экспортировать" все таблицы изschema1 to blammySchema (все применяемые таблицы).
  2. Для каждой таблицы, которая была «экспортирована» в blammySchema, создайте синоним в schema1, который ссылается на таблицу в blammySchema.

Здесьпример синонима:

create synonym schema1.kapow for blammySchema.kapow

После того, как вы создали все синонимы, перекомпилируйте ваши пакеты.

...