Если я выполню этот запрос, откуда данные будут извлечены
Нигде.REDSOXRULE не имеет объекта с именем mlb_players
, поэтому запрос не будет выполнен с ORA-00942: table or view does not exist
.
. Вам нужно будет добавить префикс имени таблицы к префиксной схеме, например,
SELECT *
FROM d.mlb_players;
Предположим, у вас есть вариация вашей опубликованной структуры.
- REDSOXRULE имеет представление
mlb_players
для a.mlb_players
.Запрос select * from mlb_players
будет выбран из этого представления, то есть из a.mlb_players
. - Вместо представления REDSOXRULE имеет закрытый синоним
mlb_players
для b.mlb_players
.Запрос select * from mlb_players
будет выбран из этого синонима, то есть из b.mlb_players
.Обратите внимание, что в вашей схеме не может быть личного синонима с тем же именем, что и у таблицы или представления. - Вместо частного синонима база данных имеет общедоступный синоним
mlb_players
для d.mlb_players
.Запрос select * from mlb_players
будет выбран из этого общего синонима, то есть из d.mlb_players
.
То есть Oracle сначала ищет объекты, принадлежащие схеме (таблицы, представления, частные синонимы и т. Д.).Тогда это смотрит на публичные синонимы.Затем он ищет объекты в других схемах