pls*_*ife 18 oracle statistics plsql dead-code
如何判断是否正在使用PL/SQL包,过程或函数?是否有包含有关PL/SQL包,过程或函数用法的统计信息的Oracle表或视图?
Sho*_*ace 17
您也可以尝试查询USER/ALL_source:
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%procedure_name%')
Run Code Online (Sandbox Code Playgroud)
要么
SELECT * FROM all_source
where UPPER(TEXT) like UPPER('%package.function_name%')
Run Code Online (Sandbox Code Playgroud)
你必须忽略自我引用,但这应该很容易被发现.
您还需要检查来自user/all_views的"查看"来源.请参阅有关查询查看源的其他问题.
您还可以检查是否使用了包或顶级功能/过程
select * from all_dependencies
where referenced_name like '%PACKAGE_NAME%';
Run Code Online (Sandbox Code Playgroud)
注意:根据需要使用all_/dba_切换user_
如果您专门寻找未调用的函数,那么另一个选项是在打开WARNINGS的情况下编译代码,然后查找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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
47299 次 |
最近记录: |