现象:
在打完19.27 的补丁后,跑datapatch 的过程中遇到以下报错,导致datapatch 无法跑起来,
ERROR:
ORA-20001: Latest xml inventory is not loaded into table
ORA-06512: at "SYS.DBMS_QOPATCH", line 1448
ORA-06512: at "SYS.DBMS_QOPATCH", line 122
检查:
在数据库中执行:
select * from OPATCH_XML_INV ;
会有以下的报错:
ERROR:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-29400: data cartridge error
KUP-04027: file name check failed: <$ORACLE_HOME>/QOpatch/qopiprep.bat
qopatch_log.log 中类似以下的报错:
KUP-04027: file name check failed: qopiprep.bat
KUP-04017: OS message: Error 0
KUP-04017: OS message: Oracle Directory object contains 1 symbolic links at path component /u01
KUP-04118: operation "lstat64", location "skudmicdl:1"
原因在于 $ORACLE_HOME 的路径中含有软链接,所以在执行$ORACLE_HOME/QOPatch/qopiprep.bat 的时候,会有 KUP-4027 的报错。
ls -ld /opt/oracle
lrwxrwxrwx 1 root root 12 May 7 2012 /opt/oracle -> /appl/oracle
$ORACLE__HOME 的值为:ORACLE_HOME=/opt/oracle/12101a
解决办法:
使用当前$ORACLE_HOME的值关闭数据库,然后重新export 全路径的ORACLE_HOME
在我的环境中:
原路径:
xxxhosta :/oracle/home$echo $ORACLE_HOME
/u01/app/oracle/product/19.0.0.0/dbhome_1
重新export 新路径:
export ORACLE_HOME=/apps/u01/app/oracle/product/19.0.0.0/dbhome_1
重新启动数据库,再执行datapatch , 问题解决。
更多在跑datapatch 中,出现这个报错的情况,请参考Queryable Patch Inventory - Issues/Solutions for ORA-20001: Latest xml inventory is not loaded into table (Doc ID 1602089.1)解决。




