5

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. また可能性: 私はこれを完全に読み違えており、人々はパッチを適用したことを忘れています。

4

2 に答える 2