Vous pouvez également essayer d'interroger USER/ALL_source :
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%procedure_name%')
ou
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%package.function_name%')
Vous devrez ignorer les références personnelles, mais cela devrait être facile à repérer.
Vous devrez également vérifier la source "view" de user/all_views. Voir l'autre question sur l'interrogation de la source de vue.
vous pouvez également vérifier si un package ou une fonction/procédure de niveau supérieur est utilisé avec
select * from all_dependencies
where referenced_name like '%PACKAGE_NAME%';
NB :changez user_ avec all_/dba_ si nécessaire
si vous recherchez spécifiquement des fonctions non appelées, une autre option consiste à compiler votre code avec les AVERTISSEMENTS activés, puis à rechercher PLW-06002 et 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