2016-12-22 2 views
1

У меня есть база данных, где вид и таблицы имеют такое же имя, когда я пытаюсь выполнить запросВыбор данных из поля зрения против таблицы того же имени

select * from XXXXXXXXX 

, откуда приходит это данные, зрения или таблицы? Есть ли какой-либо явный синтаксис объявления, чтобы указать, куда от выбора данных?

PS: владелец БД отличается, поэтому я не могу изменить структуру вида/таблицы или имен.

+0

Это дублированный вид & таблица, принадлежащая тому же владельцу? – codeforester

+0

@codeforester ни один владелец не отличается, а дубликат не будет правильным для них в этом контексте. –

+0

Если вы выполняете запрос как другой пользователь (а не владелец), тогда запрос будет работать только в том случае, если существует общедоступный синоним (что делает Oracle). Вам нужно взглянуть на определение синонима, чтобы узнать, какую таблицу или точку зрения он указывает. – codeforester

ответ

2

Имена объектов уникальны для каждого владельца, поэтому таблица и представление не могут быть определены для одного и того же владельца.
Присвоить имя таблицы/имени правильному владельцу.

select * from table_owner.XXXXXXXXX 

select * from view_owner.XXXXXXXXX 
+0

Что делать с разрешениями, если мне нужны данные из представления, мне также нужно разрешение по таблице, когда представление ссылается на одну и ту же таблицу? –

+1

У владельца представления есть разрешения на таблицу. Вам это тоже понадобится. –

+1

Если владелец представления является dbo, вам нужны только permssions в представлении (все, к чему он обращается в той же базе данных, не обязательно доступно.) –

Смежные вопросы