Это вопрос Oracle.
Мне нужно написать функцию pl / sql, которая получает имя и определяет, соответствует ли она какой-либо хранимой процедуре в любом месте, которая может быть вызвана.То есть имя может быть любой из этих форм:
somename - может быть процедурой в текущей схеме или синонимом процедуры в другом месте firstpart.secondpart - может означать пакет firstpart (в текущей схеме ИЛИ aсиноним) с процедурой secondpart в нем, ИЛИ это может означать user firstpart и процедуру secondpart first.second.third - предположительно означает пользователя first, package second, процедуру третий
(я думаю, это все возможности.)*
Я мог бы пройтись по каждой из возможностей по очереди, просматривая all_synonyms и all_procedures, но есть ли лучший способ, чтобы Oracle выполняла большую часть работы?т.е. пытаться вызвать процедуру и перехватить исключение, если оно не существует?К сожалению, я заметил, что вызов процедуры (через блок begin; end в EXECUTE IMMEDIATE) возвращает ту же ошибку, -6550, когда я пробовал имя процедуры, которая не существует (в пакете, который делает), как когда япробовал правильную процедуру с неверными аргументами.
Предложения?