参考文档:
Queryable Patch Inventory - Issues/Solutions for ORA-20001: Latest xml inventory is not loaded into table KB147556
Symptoms 27
LANG and Locale Variables environment variables didn't match with the locale-specific conversions and conventions for the shell.
问题:
在安装RU19.30的时候,打补丁过程没有问题,运行OPatch的时候报Latest xml inventory is not loaded into table
-- 查询OPATCH_XML_INV,出现错误
SYS@bak SQL> select * from OPATCH_XML_INV ;
ERROR:
ORA-29913: error in executing ODCIEXTTABLEFETCH callout
ORA-29400: data cartridge error
KUP-04095: preprocessor command
/u01/app/oracle/product/19.0.0/db_1/QOpatch/qopiprep.bat encountered error
"pipe read timeout"
no rows selected
SYS@bak SQL>
-- 在logfile /u01/app/oracle/product/19.0.0/db_1/rdbms/log/qopatch_log.log中,出现以下错误
LOG file opened at 01/21/26 15:26:22
KUP-05007: Warning: Intra source concurrency disabled because the preprocessor option is being used.
KUP-03037: Links may exist in the Oracle directory object path.
Bad File: qopatch_bad.bad
Field Definitions for table OPATCH_XML_INV
Record format DELIMITED BY NEWLINE
Data in file has same endianness as the platform
Reject rows with all null fields
Fields in Data Source:
XML_INVENTORY CHAR (100000000)
Terminated by "UIJSVTBOEIZBEFFQBL"
Trim whitespace same as SQL Loader
KUP-04095: preprocessor command /u01/app/oracle/product/19.0.0/db_1/QOpatch/qopiprep.bat encountered error "pipe read timeout"
KUP-04017: OS message: No such file or directory
KUP-04017: OS message: pipe read timeout
KUP-04118: operation "pipe read timeout", location "skudmir:2"
--当时客户端环境是中文,locale信息如下:查看LANG是zh_CN.UTF-8
ban@ban-Vostro-14-3430:~/桌面$ locale
LANG=zh_CN.UTF-8
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
ban@ban-Vostro-14-3430:~/桌面$
-- 查看服务器上的locale信息,LANG是en_US.UTF-8
[oracle@19ctest QOpatch]$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
[oracle@19ctest QOpatch]$
--换成英文 继续datapatch,还是同样的问题
[root@19ctest ~]# tail -f /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_2356_2026_01_21_16_44_34/sqlpatch_invocation.log
'TEST'
],
'run_dbmsqopi' => 0,
'run_dbmssqlpatch' => 0,
'run_prvtqopi' => 0,
'run_prvtsqlpatch' => 0,
'run_sqlpatch_bootstrap' => 0
}
];
[2026-01-21 16:44:40] done
[2026-01-21 16:50:07] verify_queryable_inventory returned ORA-20001: Latest xml inventory is not loaded into table
[2026-01-21 16:50:07] Error: prereq checks failed!
[2026-01-21 16:50:07] verify_queryable_inventory returned ORA-20001: Latest xml inventory is not loaded into table
[2026-01-21 16:50:07] Prereq check failed, exiting without installing any patches.
[2026-01-21 16:50:07] *** START final state end of patching ***
[2026-01-21 16:50:07] patch_descriptions: $VAR1 = 'Data::Dumper';
$VAR2 = {};
[2026-01-21 16:50:07] pdb_info: $VAR1 = 'Data::Dumper';
$VAR2 = {
'TEST' => {
-- 回退补丁,重新打补丁,然后再次datapatch,问题解决 。
[oracle@19ctest 38632161]$ opatch rollback -id 38632161
[oracle@19ctest 38632161]$ opatch apply
[oracle@19ctest 38632161]$ ./datapatch -verbose
END