迁移环境如下源库Oracle Database 23.26.1ODA目标库Oracle AI Database 26ai23.26.2自建 CDB/PDB迁移方式expdp 到 impdp导入时报错ORA-39002: invalid operationORA-39405: Oracle Data Pump does not support importing from a source databasewith TSTZ version 44 into a target database with TSTZ version 43.一开始容易疑惑目标库 RU 已经更高为什么 Time Zone Version 反而更低原因是 Database RU 和 Time Zone Version 是两套独立版本体系。升级 RU 或 Oracle Home并不会自动升级数据库当前使用的 Time Zone Version。可以在目标库查看当前 Time Zone VersionSELECT * FROM v$timezone_file;结果显示目标库仍是timezlrg_43.dat 43再查看 Oracle Home 支持的最新 Time Zone VersionSELECT dbms_dst.get_latest_timezone_version FROM dual;结果为45这说明 Oracle Home 已经支持 Version 45但目标数据库本身仍停留在 Version 43。因此当导入来自 TSTZ Version 44 的 dump 时Data Pump 会报 ORA-39405。02 | 只升级目标 PDB 即可解决本次场景不需要重新建库也不需要重新导出。只要把目标业务 PDB 的 Time Zone Version 升级到与源库相同或更高即可。先切换到目标 PDBALTER SESSION SET CONTAINERDATACLAWPDB;以 Upgrade 模式打开 PDBALTER DATABASE OPEN UPGRADE;开始升级窗口这里使用 Oracle Home 当前支持的最新版本 45BEGINDBMS_DST.BEGIN_PREPARE(45);END;/BEGINDBMS_DST.END_PREPARE;END;/BEGINDBMS_DST.BEGIN_UPGRADE(45);END;/然后重启 PDBSHUTDOWN IMMEDIATE;STARTUP;升级所有 TSTZ 数据SET SERVEROUTPUT ON;DECLAREl_failures BINARY_INTEGER;BEGINDBMS_DST.UPGRADE_DATABASE(l_failures);DBMS_OUTPUT.PUT_LINE(Failures ’ || l_failures);END;/如果输出中 Failures 0说明需要处理的对象已经成功升级。最后结束升级窗口SET SERVEROUTPUT ON;DECLAREl_failures BINARY_INTEGER;BEGINDBMS_DST.END_UPGRADE(l_failures);DBMS_OUTPUT.PUT_LINE(Failures ’ || l_failures);END;/成功后再次确认SELECT * FROM v$timezone_file;目标 PDB 显示为timezlrg_45.dat45此时重新执行 impdp不再出现 ORA-39405导入可以正常通过。补充一点在多租户架构中PDB 的 Time Zone Version 可以独立于 CDBROOT。也就是说CDBROOT。也就是说CDBROOT。也就是说CDBROOT 和 PDB$SEED 仍为 43而业务 PDB 升级到 45是一个可用配置。从管理角度看Root、PDB$SEED、业务 PDB 保持一致更方便。但为了完成单个业务 PDB 的导入只升级目标 PDB 就足够了。这次问题的核心结论是RU 版本高不代表 TSTZ Version 高当目标库 TSTZ Version 低于源库时Data Pump 会拒绝导入。把目标 PDB 升级到相同或更高的 Time Zone Version 后即可解决问题。