服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

如何在oracle中重编译所有无效的存储过程

如何在oracle中重编译所有无效的存储过程:

在sql_plus中:

spool execcompproc.sql select 'alter procedure '
||object_name||' compile;' from all_objects where 
status = 'invalid' and object_type = 'procedure'; spool off

@execcompproc.sql;

整理成一个存储过程:

create or replace procedure zl_compile_invalid_procedure 
asstrsql varchar2(200);beginfor x in (select object_name 
from all_objects where status = 'invalid' 
and object_type = 'procedure') loopstrsql := 'alter procedure '
 || x.object_name || ' compile';begin execute immediate strsql; 
exception--when others then null;   when others then
 dbms_output.put_line(sqlerrm);   end;end loop;end;

最后执行:

exec zl_compile_invalid_procedure;

如果要看到无法重编译的过程的出错信息,需要执行前设置set serverout on。

扫描关注微信公众号