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 as
strsql varchar2(200);
begin
for x in (select object_name from all_objects where status = 'invalid'
and object_type = 'procedure') loop
strsql := '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
新聞熱點
疑難解答