Oracle queries to find invalid components and objects

-- invalid components after the upgrade
set line 180
set pagesize 50
COL COMP_ID for a10
COL COMP_NAME for a40
COL VERSION for a20
COL VERSION_FULL for a20
COL STATUS for a15
COL SCHEMA for a15
SELECT COMP_ID, COMP_NAME,VERSION,STATUS,SCHEMA,VERSION_FULL
FROM  SYS.DBA_REGISTRY
WHERE STATUS = 'INVALID';
-- invalid objects after the upgrade
set line 180
set pagesize 50
col OWNER for a11
col OBJECT_NAME for a40
col OBJECT_TYPE for a20
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
FROM SYS.DBA_OBJECTS
WHERE STATUS = 'INVALID'
order by OBJECT_NAME,OWNER;

set line 180
set pagesize 50
col OWNER# for 999999
col TYPE# for 99999
col name for a30
SELECT OWNER#, TYPE#, NAME
FROM SYS.OBJ$ WHERE STATUS != 1;

SELECT NAME, SUBNAME FROM SYS.OBJ$
      WHERE STATUS > 1 AND TYPE# = 13;


SELECT OBJ# || ' ' || COMPILE_ERR AS INVALID_COMPILE_OBJS
      FROM SYS.UTL_RECOMP_ERRORS;
-- database errors
set line 180
set pagesize 50
col OWNER for a11
col name for a30
col error for a100
SELECT OWNER,NAME,SUBSTR(TEXT,1,750) AS ERROR
FROM SYS.DBA_ERRORS;
-- system components
set line 180
set pagesize 50
col OBJECT_NAME for a40
col OBJECT_TYPE for a20
col OWNER for a11
SELECT OBJECT_NAME, OBJECT_TYPE, OWNER
FROM SYS.DBA_INVALID_OBJECTS  
WHERE OWNER in ('SYS','SYSTEM')
order by OWNER, OBJECT_TYPE;

set line 180
set pagesize 50
col OBJECT_NAME for a40
col OBJECT_TYPE for a20
col OWNER for a11
SELECT OBJECT_NAME ,OBJECT_TYPE
FROM SYS.DBA_INVALID_OBJECTS
WHERE OWNER NOT IN ('SYS','SYSTEM','SYSMAN');