Создание общедоступного синонима на системном уровне

Я создал общедоступный синоним, как было предложено в моем другом вопросе о создании представления на системном уровне. Сказав, что я создал отдельный общедоступный синоним из представления, чтобы мне больше не приходилось подключаться к отдельному домену. Теперь моя проблема заключается в том, как создать общедоступный синоним основного типа, чтобы захватить все те синонимы, которые я создал ранее. В какой степени можно использовать оператор for?

Пример: на системном уровне я буду запускать запрос для каждого домена, в котором создан MYVIEW: создайте или замените общедоступный синоним domain1_myview на domain1.myview; Создать или заменить публичный синоним domain2_myview на domain2.myview; Создать или заменить общедоступный синоним domain3_myview на domain3.myview;

Тогда у меня есть 3 общедоступных синонима выше.

Затем я попытался написать заявление (от отчаяния, а не как эксперт), как показано ниже, в надежде иметь только ОДИН Master_MYVIEW, но потерпел неудачу: Создайте или замените общедоступный синоним MASTER_MYVIEW для (выбрать * из объединения domain1_myview all select * from domain2_myview union all select * from domain3_myview) ;

Ошибка с указанным выше: «ORA-00995: отсутствует или неверный идентификатор синонима»

Надеюсь, кто-то может помочь мне в этой задаче. Хорошего дня.


person Fadzil    schedule 29.07.2009    source источник
comment
Я также пробовал: СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ОБЩЕСТВЕННЫЙ СИНОНИМ MASTER_MYVIEW для (выберите * из domain1.myview union all select * from domain2.myview) и так далее. Но я получил ошибку: недостаточная привилегия. Обычные ребята, помогите мне здесь. Цените любой ответ.   -  person Fadzil    schedule 29.07.2009
comment
Привет, ребята... Я все еще жду ответа разведки от кого-нибудь из вас... действительно в отчаянии. У меня нет выбора, и мне также нужно знать, возможно ли создать главный синоним из синонима, о котором я упоминал ранее. Может ли это быть кроме ПУБЛИЧНОГО владельца и ПУБЛИЧНОГО СИНОНИМА?   -  person Fadzil    schedule 30.07.2009


Ответы (1)


Попробуйте сначала создать представление с именем MASTER_MYVIEW (вам также может понадобиться иметь дело с привилегиями):

create view master_myview as select ...;

Затем создайте общедоступный синоним для этого нового представления:

create or replace public synonym master_myview for <owner>.master_myview;
person Pop    schedule 23.08.2009
comment
Ограничение с недостаточным преимуществом связано с моим грантом. ПРЕДОСТАВЬТЕ ЛЮБУЮ ТАБЛИЦУ admin (например, admin — это пользователь) - person Fadzil; 28.08.2009