【赛迪网-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。