Oracle データベース ソフトウェア リリースの識別では、Oracle は、 PRODUCT_COMPONENT_VERSIONを照会することで、「プラットフォーム固有のリリース番号」(パッチ セット) を見つけることができると述べています。
現在インストールされているOracle Databaseのリリースを特定し、使用している他のデータベース・コンポーネントのリリース・レベルを確認するには、データ・ディクショナリ・ビューPRODUCT_COMPONENT_VERSIONを問い合せます。
thisによると、11.2.0.3.0を使用しています
SQL> select * from product_component_version;
PRODUCT VERSION STATUS
----------------------------------- --------------- ---------------
NLSRTL 11.2.0.3.0 Production
Oracle Database 11g 11.2.0.3.0 64bit Production
PL/SQL 11.2.0.3.0 Production
TNS for Linux: 11.2.0.3.0 Production
同じことが V$VERSION でも発生します (これは PRODUCT_COMPONENT_VERSION が付随的に表示されます)。
SQL> select * from v$version;
BANNER
---------------------------------------------------------
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production
ただし、DBA_REGISTRY_HISTORYによると、データベースは 11.2.0.3.5 1にあるようです。
SQL> select action, namespace, version, id, comments from dba_registry_history;
ACTION NAMESPACE VERSION ID COMMENTS
--------------- --------- ---------- ---------- ------------------------------
VIEW INVALIDATE 8289601 view invalidation
UPGRADE SERVER 11.2.0.3.0 Upgraded from 11.2.0.1.0
APPLY SERVER 11.2.0.3 0 Patchset 11.2.0.2.0
APPLY SERVER 11.2.0.3 5 PSU 11.2.0.3.5
DBA_REGISTRY_HISTORY には必ずしもデータが含まれているとは限らないため、このビューを確実に使用することはできません。そして、オラクルはコメントフィールドにデータを入力する標準化された方法を提供していないようです。
select max(regexp_replace(comments, '[^[:digit:].]'))
keep (dense_rank first order by action_time desc)
from dba_registry_history
現在のバージョン (パッチ セットを含む) をプログラムで確認する、より簡単で信頼できる方法はありますか?
1. また可能性: 私はこれを完全に読み違えており、人々はパッチを適用したことを忘れています。