Below is the query i have used to analyse invalid dba objects from dba_objects in database and its returning with invalid objects:
select do.STATUS as CODE_STATUS, do.OBJECT_TYPE, do.OWNER, do.OBJECT_NAME from dba_objects do
WHERE UPPER(do.OBJECT_TYPE) IN ('TABLE', 'VIEW', 'FUNCTION', 'PROCEDURE', 'PACKAGE', 'PACKAGE BODY') AND UPPER(do.STATUS) <> 'VALID'
AND do.owner in ('AD','BD','DR','CD')
Below is the query the i have used to analyse invalid dba objects from sys.dba_objects and its returning null:
select do.STATUS as CODE_STATUS, do.OBJECT_TYPE, do.OWNER, do.OBJECT_NAME from sys.dba_objects do
WHERE UPPER(do.OBJECT_TYPE) IN ('TABLE', 'VIEW', 'FUNCTION', 'PROCEDURE', 'PACKAGE', 'PACKAGE BODY') AND UPPER(do.STATUS) <> 'VALID'
AND do.owner in ('AD','BD','DR','CD')
Why the first query returns results with invalid package body and why the second query does not return any result