OK, sorry for the easy question. I am curious about the answers I found, though. How do I research why these synonyms and the underlying SYS objects are INVALID? Do I just try to recompile them, and then keep looking if they fail to recompile? Just nervous since they're not objects that we created.
SQL> select object_name
2 from dba_objects
3 where status = 'INVALID' and owner = 'PUBLIC';
Just for grins ... here's a script that will find synonyms that no longer
are valid ....
select 'drop ' || decode(owner,'PUBLIC','PUBLIC SYNONYM ',
'"' || synonym_name|| '"' || ' -- refers to '
|| '.' || table_name ||
'@'||db_link) || '-- ;'
from dba_synonyms A
where TABLE_OWNER not in ('SYS','SYSTEM','DBSNMP')
and owner not in ('SYS', 'SYSTEM', 'DBSNMP')
and table_name not in (select object_name
from dba_objects B
where object_type in
and A.table_owner = B.owner)
and db_link is null
order by table_owner, table_name