Sometimes catalog and catproc components become invalid due to some invalid objects. You need to find those objects and take necessary action.
SQL> select comp_id, status, version from dba_registry; COMP_ID STATUS VERSION ------------ ----------- -------------- CATALOG INVALID 11.2.0.3.0 CATPROC INVALID 11.2.0.3.0
Use below script to get the objects which is causing the issue:
set serveroutput on; declare start_time date; end_time date; object_name varchar(100); object_id char(10); begin SELECT date_loading, date_loaded into start_time, end_time FROM registry$ WHERE cid = 'CATPROC'; SELECT obj#,name into object_id,object_name FROM obj$ WHERE status > 1 AND (ctime BETWEEN start_time AND end_time OR mtime BETWEEN start_time AND end_time OR stime BETWEEN start_time AND end_time) AND ROWNUM <=1; dbms_output.put_line('Please compile Invalid object '||object_name||' Object_id '||object_id ); EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line('CATPROC can be validated now' ); end; /
It will ask you compile the invalid objects, once these objects are validated, CATALOG and CATPROC will become VALID.