Вы также можете попробовать запросить USER / ALL_source:
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%procedure_name%')
или
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%package.function_name%')
Вам придется игнорировать ссылки на себя, но это легко заметить.
Вам также нужно проверить «просмотр» источника из user / all_views. См. Другой вопрос о запросе источника просмотра.
вы также можете проверить, используется ли пакет или функция / процедура верхнего уровня с
select * from all_dependencies
where referenced_name like '%PACKAGE_NAME%';
NB: при необходимости переключите user_ с all_ / dba_
если вы специально ищете невостребованные функции, то другой вариант - скомпилировать ваш код с включенными ПРЕДУПРЕЖДЕНИЯМИ, а затем искать PLW-06002 и LPW-06006
exec DBMS_WARNING.add_warning_setting_cat('ALL','ENABLE','SESSION')
create or replace function x return number
as
procedure y is begin null; end;
begin
return 0;
return 1;
end;
show errors
Errors for FUNCTION X:
LINE/COL ERROR
-------- -----------------------------------------------------------------
1/1 PLW-05018: unit X omitted optional AUTHID clause; default value DEFINER used
3/1 PLW-06006: uncalled procedure "Y" is removed.
6/1 PLW-06002: Unreachable code