Обновить SQL-уровень через datapatch -verbose после бинарного патча
OracleПатчинг и жизненный циклКоманда
# 1) After the binary patch (opatch apply), start the DB; all PDBs must be open:
sqlplus / as sysdba <<EOF
STARTUP;
ALTER PLUGGABLE DATABASE ALL OPEN;
EXIT;
EOF
# 2) Check only first, then apply:
cd $ORACLE_HOME/OPatch
./datapatch -prereq
./datapatch -verbose
# For specific PDBs: ./datapatch -verbose -pdbs PDB1,PDB2
# 3) Recompile invalid objects:
sqlplus / as sysdba @?/rdbms/admin/utlrp.sql
# Logs: $ORACLE_BASE/cfgtoollogs/sqlpatch/Что делает
datapatch применяет SQL/PL-SQL-компоненты (словарь, пакеты) бинарных патчей из Oracle Home к CDB root, PDB$SEED и всем открытым PDB и записывает результат в DBA_REGISTRY_SQLPATCH. Он также откатывает SQL-часть отозванных патчей.
Когда использовать
После каждого бинарного RU/RUR/one-off-патча или его отката; для PDB, перенесённых или подключённых через unplug/plug в заново пропатченный home; и для повторного запуска, когда DBA_REGISTRY_SQLPATCH показывает WITH ERRORS.
Внимание
Закрытые PDB или PDB в состоянии MOUNTED не патчатся и могут открыться в режиме RESTRICTED; сначала откройте их все. Не запускайте при высокой нагрузке (блокировки словаря, инвалидация пакетов). В RAC запускайте один раз только с одного узла. В Data Guard запускайте datapatch только на primary; изменения доходят до standby через redo (сначала пропатчите бинарные файлы standby).