-- validate all invalid objects

set serveroutput on

declare

  v_obj_id number;

  v_owner varchar2(30);

  v_object_name varchar2(128);

  cursor cur_invalid_obj is

    select object_id,owner,object_name from dba_objects where status = 'INVALID';

begin

  open cur_invalid_obj;

  loop

    fetch cur_invalid_obj into v_obj_id,v_owner,v_object_name ;

    exit when cur_invalid_obj%NOTFOUND;

    dbms_output.put_line('Validating '||v_owner||'.'||v_object_name);

    dbms_utility.validate(v_obj_id);

  end loop;

  close cur_invalid_obj;

end;

1