服务热线:13616026886

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

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

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

【赛迪网-it技术报道】在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。

扫描关注微信公众号