U kunt ook proberen USER/ALL_source te bevragen:
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%procedure_name%')
of
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%package.function_name%')
Je zult zelfreferenties moeten negeren, maar dat zou gemakkelijk te herkennen moeten zijn.
Je moet ook de "view" source van user/all_views controleren. Zie echter de andere vraag over het opvragen van de weergavebron.
u kunt ook controleren of een pakket of een functie/procedure op het hoogste niveau wordt gebruikt met
select * from all_dependencies
where referenced_name like '%PACKAGE_NAME%';
NB:wissel user_ met all_/dba_ indien nodig
als u specifiek op zoek bent naar niet-aangeroepen functies, dan is een andere optie om uw code te compileren met WAARSCHUWINGEN ingeschakeld en vervolgens te zoeken naar PLW-06002 en 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