Issue during datapatch verbose command in 12c patching (ORA-20001)
ORA-20001: Latest xml inventory is not loaded into table
After successful applied the opatch apply command, when we execute the post installation steps of Patch in 12c home. i.e datapatch -verbose then we will get the following error:
Bootstrapping registry and package to current versions…done
verify_queryable_inventory returned ORA-20001: Latest xml inventory is not loaded into table
Queryable inventory could not determine the current opatch status.
Execute ‘select dbms_sqlpatch.verify_queryable_inventory from dual’
and/or check the invocation log
E:\oracle\cfgtoollogs\sqlpatch\sqlpatch_1080_2017_07_16_01_49_49\sqlpatch_invocation.log for the complete error.
Prereq check failed, exiting without installing any patches.
Please refer to MOS Note 1609718.1 and/or the invocation log
E:\oracle\cfgtoollogs\sqlpatch\sqlpatch_1080_2017_07_16_01_49_49\sqlpatch_invocation.log for information on how to resolve the above errors.
On checking the database alert log file. We found the issue with TEMP Tablespace. So, we dropped the temp files of temp Tablespace and add new temp file in TEMP Tablespace.
On Alert Log file:
Sat Sep 16 11:45:43 2017
Errors in file E:\ORACLE\diag\rdbms\orcl\ORCL\trace\ORCL_m002_2280.trc:
ORA-01187: cannot read from file because it failed verification tests
ORA-01110: data file 201: ‘E:\ORACLE\ORADATA\ORCL\TEMP01.DBF’
We first added a new temp file in the TEMP tablespace and drop the existing temp file. For drop and add go to the following link:
Manage Temp Tablespace
Verify the space on other tablespace with following query:
Note: If Space is less then increase the space or enable autotoextend on
column "MAXSIZE (MB)" format 9,999,990.00
column "USED (MB)" format 9,999,990.00
select a.tablespace_name,a.bytes_alloc/(1024*1024) "MAXSIZE (MB)",
nvl(b.tot_used,0)/(1024*1024) "USED (MB)" from (select tablespace_name,
sum(bytes) physical_bytes,sum(decode(autoextensible,'NO',bytes,'YES',maxbytes)) bytes_alloc
from dba_data_files group by tablespace_name ) a,(select tablespace_name,
sum(bytes) tot_used from dba_segments group by tablespace_name ) b
where a.tablespace_name = b.tablespace_name (+) and a.tablespace_name not in
(select distinct tablespace_name from dba_temp_files)