After upgrading a database from Oracle 12cR1 to 12cR2 (Non-CDB) environment, the following errors were thrown in the post-upgrade logs, and XDB component was not valid:
Oracle Database 12.2 Post-Upgrade Status Tool 02-24-2020 09:47:50
Component Current Version Elapsed Time
Name Status Number HH:MM:SS
Oracle Server
ORA-40362: invalid object SYS.ODCIPARTINFOLIST specified in the statement
Oracle Server INVALID 12.2.0.1.0 00:06:34
Oracle Text
ORA-06550: line 4, column 22: PLS-00905: object CTXSYS.TEXTINDEXMETHODS is i
nvalid
ORA-06550: line 4, column 6:
PL/SQL: Statement ignored
PLS-00905: object CTXSYS.TEXTINDEXMETHODS is invalid ORA-06550: line 4, colu
mn 6:
PL/SQL: Statement ignored
ORA-06550: line 4, column 6: PL/SQL: Statement ignored
PL/SQL: Statement ignored
ORA-06552: PL/SQL: Declaration ignored ORA-06553: PLS-905: object CTXSYS.CTX
_CONTAINS is invalid
ORA-06552: PL/SQL: Declaration ignored
ORA-06553: PLS-905:
object CTXSYS.CTX_CONTAINS is invalid
ORA-06552: PL/SQL: Declaration ignored
ORA
-06553: PLS-905: object CTXSYS.CTX_CONTAINS is invalid
ORA-06552: PL/SQL: Declar
ation ignored
ORA-06553: PLS-905: object CTXSYS.CTX_CONTAINS is invalid
ORA-0655
2: PL/SQL: Declaration ignored
ORA-06553: PLS-905: object CTXSYS.CTX_CONTAINS is
invalid
ORA-06552: PL/SQL: Declaration ignored
ORA-06553: PLS-905: object CTXSY
S.CTX_CONTAINS is invalid
ORA-06552: PL/SQL: Declaration ignored
ORA-06553: PLS-
905: object CTXSYS.CTX_CONTAINS is invalid
ORA-06552: PL/SQL: Declaration ignore
d
ORA-06553: PLS-905: object CTXSYS.CTX_CONTAINS is invalid
ORA-06552: PL/SQL: D
eclaration ignored
ORA-06553: PLS-905: object CTXSYS.CTX_CONTAINS is invalid
ORA
-06552: PL/SQL: Declaration ignored
ORA-06553: PLS-905: object CTXSYS.CTX_CONTAI
NS is invalid
ORA-06552: PL/SQL: Declaration ignored
ORA-06553: PLS-905: object
CTXSYS.CTX_CONTAINS is invalid
ORA-06552: PL/SQL: Declaration ignored
ORA-06553:
PLS-905: object CTXSYS.CTX_CONTAINS is invalid
ORA-06552: PL/SQL: Declaration i
gnored
ORA-06553: PLS-905: object CTXSYS.CTX_CONTAINS is invalid
ORA-06552: PL/S
QL: Declaration ignored
ORA-06553: PLS-905: object CTXSYS.CTX_CONTAINS is invali
d
ORA-06552: PL/SQL: Declaration ignored
ORA-06553: PLS-905: object CTXSYS.CTX_C
ONTAINS is invalid
ORA-06552: PL/SQL: Declaration ignored
ORA-06553: PLS-905: ob
ject CTXSYS.CTX_CONTAINS is invalid
Solution:
sqlplus / as sysdba
SQL> GRANT EXECUTE ON ODCIPartInfoList TO PUBLIC;
SQL> spool xdbreload.log
SQL> set echo on;
SQL> shutdown immediate;
SQL> startup upgrade;
SQL> @?/rdbms/admin/xdbrelod.sql
SQL> shutdown immediate;
SQL> startup;
SQL> @?/rdbms/admin/utlrp.sql
SQL> spool off
*** check database components after that:
SQL> select comp_name,status from dba_registry;
if still NOT Valid…..then perform a “drastic measure” by removing Oracle Text component and re-install it again !
To Remove Oracle Text:
sqlplus / as sysdba
SQL>@?/ctx/admin/catnoctx.sql
SQL> drop procedure sys.validate_context;
SQL>@?/rdbms/admin/utlrp.sql
check database components
SQL> select name,status from dba_registry;
if everything is Ok ….then we can install oracle text using DBCA (Database Configuration Assistant)
export DISPLAY=PCXXXXX:0.0
cd $ORACLE_HOME/bin
dbca