While patching my Oracle development instance, I run into an error
WARNING: Following components are NOT in a valid state.
This could cause patching failure. If it does, consider
running utlrp.sql to bring components to VALID state.
Then, re-run datapatch.
PDB$SEED : SDO [INVALID]
This is how to fix that problem:
SQL> conn / as sysdba
SQL> alter session set container=PDB$SEED
SQL> show con_name
SQL> select open_mode from v$database;
SQL> alter session set "_oracle_script"=TRUE;
SQL> alter pluggable database pdp$seed close immediate instances=all;
SQL> select open_mode from v$database;
SQL> alter pluggable database pdb$seed open read write;
SQL> show con_name
SQL> select open_mode from v$database;
SQL> @?/rdbms/admin/utlrp.sql
SQL> select comp_id, comp_name, version, status from dba_registry;
SQL> select count(*) from dba_objects where status='INVALID';
SQL> select object_name,object_type,owner from dba_objects where status='INVALID';
SQL> select owner, object_type, count(*) from dba_objects where status = 'INVALID' group by owner, object_type;
SQL> alter pluggable database pdb$seed close immediate instances=all;
SQL> alter pluggable database pdb$seed open read only;
SQL> show con_name
SQL> select open_mode from v$database;
SQL> alter session set "_oracle_script"=FALSE;