Вопрос с новым объектом снимается. Я искал в "Сервис|Настройка...", вкладка "Команды". В категории "Стандартные" есть, конечно, команда "Объект базы данных...", но слово "новый" там напрочь отсутствует, посему я без всякой задней мысли его пропустил.
dbForge Studio for Oracle из контекста определяет предполагаемый тип объектов и поиск производится только среди предполагаемых типов объекта.
Я бы на Вашем месте так категорично не заявлял, что он "определяет". Надо быть скромнее: "пытается определить". Вот пара примеров его неудачных "попыток" (NB: примеры бессмысленны до абсурда и призваны просто продемонстрировать недоработки).
Пример №1
Код: Выделить всё
begin
if 1 in (my_func('1'), my_func('2')) then
null;
end if;
end;
Попытка перехода к определению в первом вызове MY_FUNC не увенчалась успехом. Но, как это ни парадоксально, переход к определению во втором вызове MY_FUNC происходит.
Пример №2
Код: Выделить всё
begin
-- блок 1
for v_cur in (
select
v.id,
v2.val as val_2,
(
select
v3.val
from
my_view v3
where
v3.id = v.id
) as val_3
from
my_view v
left join my_view v2 on v2.id = v.id
)
loop
null;
end loop;
-- блок 2
for v_cur in (
with my_cte as (
select
v.id,
v2.val as val_2,
(
select
v3.val
from
my_view v3
where
v3.id = v.id
) as val_3
from
my_view v
left join my_view v2 on v2.id = v.id
)
select
mc.val_2,
mc.val_3,
v4.val as val_4
from
my_cte mc
left join my_view v4 on v4.id = mc.id
)
loop
null;
end loop;
end;
В части кода, помеченном комментарием "блок 1", все переходы к определению вьюхи MY_VIEW осуществляются. Но если слегка видоизменить запрос под курсором (см. код под комментом "блок 2"), то уже НИ В ОДНОМ из четырех использований вьюхи MY_VIEW переход не выполняется. Хотя "контекст" остался тем же: SELECT ... FROM ..., LEFT JOIN ... ON ...
И это просто пара несложных примеров, когда ваш якобы "нужный и полезный" анализ "контекста" вызова "спотыкается" на ровном месте. И именно поэтому я призываю разработчиков dbForge избавиться от идеи "параноидального парсера" и просто пытаться найти среди объектов базы слово под курсором, как это сделали разработчики того же IBExpert, TOAD и прочих сред, избавив и пользователей от лишнего геморроя, и в первую очередь себя от "изобретения велосипеда".