批量编译指定的无效对象【JOB】

来源:互联网 发布:痤疮 知乎 编辑:程序博客网 时间:2024/05/29 16:05
declare
  Vs_SQL varchar2(2000);
begin
  for R in (select owner, object_name,decode(object_type,'PACKAGE BODY','PACKAGE',object_type) object_type
                           from dba_objects
                          where status = 'INVALID'
                            and object_type IN (
                            'PROCEDURE',
                            'PACKAGE BODY',
                                                'TYPE',
                                                'FUNCTION',
                                                'PACKAGE',
                                              'VIEW',
                                                'TRIGGER')
                            and owner ='USERNAME') LOOP
      Vs_SQL := 'ALTER ' || R.Object_Type || ' ' ||R.owner || '.' || R.object_name ||' COMPILE ';
    begin
    execute immediate vs_sql;
    exception
      when others then
        dbms_output.put_line(vs_sql);
    end;
    end loop;
end;