【完全版】Oracle Database バージョン確認方法まとめ|SQL・コマンドを徹底解説

【完全版】Oracle Database バージョン確認方法まとめ|SQL・コマンドを徹底解説

「いま使っているOracle Databaseは何バージョン?」「パッチは適用済み?」――こうした確認は、トラブルシューティング、アップグレード計画、サポート問い合わせなどあらゆる場面で必要になります。

しかし、Oracleにはバージョン確認方法が10種類以上存在し、状況によって使い分けが必要です。さらに、2025年10月には「Oracle Database 23ai」が「Oracle AI Database 26ai」にブランド統合されるなど、最新事情も追いついていない記事が多いのが現状です。

本記事では、SQLによる方法・コマンドラインによる方法・GUIツールによる方法・パッチレベル確認・プログラム言語からの確認まで、全パターンを実例コード付きで網羅します。Oracle 19c、21c、23ai、26ai、それぞれの最新状況も解説するので、この1本でバージョン確認に関するあらゆる疑問が解決します。


目次

結論:最速で確認したい人へ

時間がない方向けに、最速の確認方法を先に示します。

SQLで確認するなら

SELECT * FROM V$VERSION;

SQL*Plusに接続した瞬間でOKなら

sqlplus / as sysdba
-- 接続時のバナーにバージョンが表示される

コマンドプロンプト/ターミナルだけで完結させたいなら

sqlplus -v

詳細な使い分けは以下で解説します。


バージョン情報を構成する5つの要素

Oracleの「バージョン」は、複数の数字の組み合わせで表現されます。例えば「21.3.0.0.0」を分解すると以下の意味になります。

意味
1桁目21メジャー(マーケティング)バージョン
2桁目3リリース・アップデート(RU)番号
3桁目0リリース・アップデート・リビジョン(RUR)
4桁目0増分バージョン
5桁目0プラットフォーム固有

「21c」「23ai」のように後ろにアルファベットが付くのはマーケティング名です。cはCloud、aiはAIを表します(旧来のgはGrid、iはInternetでした)。


【方法①】V$VERSION で確認する(最も基本)

最も標準的な方法です。SQL*Plus、SQL Developer、A5:SQL Mk-2など、SQLを実行できる環境すべてで使用できます。

基本構文

SELECT * FROM V$VERSION;

実行結果例(Oracle 21c)

BANNER
--------------------------------------------------------------------------------
BANNER_FULL
--------------------------------------------------------------------------------
BANNER_LEGACY
--------------------------------------------------------------------------------
    CON_ID
----------
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
         0

カラム指定で見やすく

全カラムを出すと冗長になるので、必要なカラムだけ抜くと見やすくなります。

-- 一行で表示
SELECT BANNER FROM V$VERSION;

-- 詳細バージョンも含めて表示(12c R2以降)
SELECT BANNER_FULL FROM V$VERSION;

実行結果:

BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0

V$VERSIONの各カラムの違い

カラム名内容追加バージョン
BANNER後方互換用の従来表記すべて
BANNER_FULL詳細バージョン番号を含む18c以降
BANNER_LEGACY旧形式の表記18c以降
CON_IDコンテナID(マルチテナント環境用)12c以降

【方法②】PRODUCT_COMPONENT_VERSION でコンポーネント別に確認

V$VERSIONより詳細な、各コンポーネント単位のバージョン情報が取得できます。

SELECT * FROM PRODUCT_COMPONENT_VERSION;

実行結果例:

PRODUCT                                  VERSION              STATUS
---------------------------------------- -------------------- --------------------
Oracle Database 21c Express Edition      21.0.0.0.0           Production

19cや23ai/26aiでは、VERSION_FULLカラムも含まれます。

SELECT PRODUCT, VERSION, VERSION_FULL, STATUS 
FROM PRODUCT_COMPONENT_VERSION;

【方法③】V$INSTANCE でインスタンス情報とまとめて確認

バージョンだけでなく、インスタンス名・起動時刻・ステータスも一括で確認できます。

SELECT INSTANCE_NAME, VERSION, VERSION_FULL, STATUS, STARTUP_TIME 
FROM V$INSTANCE;

実行結果例:

INSTANCE_NAME    VERSION         VERSION_FULL    STATUS       STARTUP_TIME
---------------- --------------- --------------- ------------ -------------------
XE               21.0.0.0.0      21.3.0.0.0      OPEN         2026-06-08 09:30:15

運用現場ではこの方法が最も実用的です。バージョンとインスタンス状態を一度に確認できるため、トラブルシューティング時の初手として使えます。


【方法④】V$DATABASE で詳細属性とあわせて確認

データベース全体の属性情報を確認する V$DATABASE でも、バージョン関連情報を取得できます。

SELECT NAME, DB_UNIQUE_NAME, OPEN_MODE, DATABASE_ROLE, PLATFORM_NAME, CREATED 
FROM V$DATABASE;

直接的なバージョン文字列はありませんが、プラットフォーム情報、データベース作成日、起動モードなどを把握できるため、環境調査時に有用です。


【方法⑤】SQL*Plus接続時のバナーで確認

SQL*Plusに接続した直後に、バナーとしてバージョンが表示されます。SQLを実行することなく確認できるのが利点です。

通常接続

sqlplus sys@xe as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on 月 6月 8 17:12:36 2026
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

パスワードを入力してください:


Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。

冒頭の「SQL*Plus: Release」がクライアントツールのバージョン、末尾の「Oracle Database」がサーバーのバージョンです。両方が表示されるため、クライアント・サーバー間のバージョン差異も確認できます。

/nolog オプションで接続せずに起動

sqlplus /nolog

SQL*Plus: Release 21.0.0.0.0 - Production on 月 6月 8 17:52:15 2026
Version 21.3.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.

SQL>

DBに接続せずSQL*Plusだけを起動するモードで、クライアント側のバージョン確認のみができます。


【方法⑥】sqlplus -v でクライアントだけ確認

DBに接続不要、最小のコストでSQL*Plus(クライアント)のバージョンだけを知りたい場合の最短コマンドです。

sqlplus -v

SQL*Plus: Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
シェルスクリプトでバージョン判定する際にも便利です。

【方法⑦】SQL Developer GUI から確認

Oracle公式の無料GUIツール「SQL Developer」で確認する手順です。

  1. データベースに接続する
  2. メニューバー「表示」→「レポート」を選択
  3. レポートツリー「データ・ディクショナリ・レポート」→「データベースについて」→「バージョン・バナー」を選択
  4. 接続するDBを選ぶと、バージョン情報が表示される

GUI操作だけで完結するので、SQLに不慣れな運用担当者でも実行できます。

接続情報パネルでも確認

接続を右クリック→「プロパティ」でも、簡易的にバージョンが表示されます。


【方法⑧】A5:SQL Mk-2 から確認

国産の人気SQLクライアント「A5:SQL Mk-2」での確認手順:

  1. 対象データベースに接続
  2. メニュー「ツール」→「管理者ツール」を開く
  3. バージョン」タブを選択すると、バージョン情報が表示される

画面表記が日本語で、わかりやすいのが特徴です。


【方法⑨】Oracle Enterprise Manager(OEM)から確認

EM Expressの場合は、デフォルトで https://localhost:5500/em/ から接続できます。

  1. ブラウザで EM URLにアクセス
  2. SYSユーザーでログイン
  3. ダッシュボード上部に「Oracle Database 21c」のようにバージョンが表示される
  4. 構成」→「データベース・バージョン」でより詳細な情報を確認

GUI管理ツールを常用している環境では、ログイン画面に直接表示されているのが便利です。


【方法⑩】Linuxコマンドラインから確認(DBに接続不要)

OS層で確認する方法は、DBがダウンしている時や、サーバーに入ったばかりで認証情報を持っていない時に有用です。

opatch でOracle Homeのバージョンを確認

$ORACLE_HOME/OPatch/opatch lsinventory

実行結果例:
Oracle Interim Patch Installer version 12.2.0.1.39
Copyright (c) 2024, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/21c/dbhome_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/21c/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.39
OUI version       : 12.2.0.10.0

Installed Top-level Products (1):
Oracle Database 21c                                            21.0.0.0.0

インストール済みパッチ一覧も同時に表示されるため、運用上もっとも情報量が多い確認方法です。

oraversion コマンド(19c以降)

19c以降で追加された専用コマンドです。

oraversion -compositeVersion

21.3.0.0.0

oraversion -majorVersion

21
スクリプトで判定する用途に最適です。

RPMパッケージから確認(Linux)

rpm -qa | grep -i oracle

oracle-database-ee-21c-1.0-1.x86_64
oracle-database-xe-21c-1.0-1.x86_64
oracle-instantclient-basic-21.13.0.0.0-1.x86_64
パッケージ管理経由でインストールした場合に有効です。

Oracle Home配下のファイルから確認

cat $ORACLE_HOME/inventory/ContentsXML/comps.xml | grep -i "VERSION="

または:

strings $ORACLE_HOME/bin/oracle | grep -i "release"
最終手段として、バイナリから直接抽出する方法もあります。

【方法⑪】パッチレベルを確認する(重要)

メジャーバージョンだけでなく、適用済みパッチ(PSU/RU/RUR)まで含めた正確なバージョンを把握することは、サポート問い合わせや脆弱性対応で必須です。

DBA_REGISTRY_SQLPATCH(12c以降)

SELECT PATCH_ID, ACTION, ACTION_TIME, DESCRIPTION 
FROM DBA_REGISTRY_SQLPATCH 
ORDER BY ACTION_TIME DESC;

V$DATABASE_REGISTRY_INFO

SELECT * FROM V$DATABASE_REGISTRY_INFO;

DBA_REGISTRY でコンポーネント別の状態を確認

SELECT COMP_ID, COMP_NAME, VERSION, STATUS 
FROM DBA_REGISTRY;

各コンポーネント(XML DB、Java VM、APEXなど)のバージョンと状態を一覧化できます。


【方法⑫】プログラム言語からバージョン取得

Python(python-oracledb)

import oracledb

conn = oracledb.connect(
    user="system",
    password="password",
    dsn="localhost:1521/XEPDB1"
)

print(conn.version)
# 出力例: 21.3.0.0.0

cursor = conn.cursor()
cursor.execute("SELECT BANNER FROM V$VERSION")
for row in cursor:
    print(row[0])

Java(JDBC)

DatabaseMetaData metaData = connection.getMetaData();
System.out.println(metaData.getDatabaseProductVersion());

Node.js(node-oracledb)

const oracledb = require('oracledb');
const conn = await oracledb.getConnection({/* ... */});
console.log(conn.oracleServerVersionString);
// 出力例: 21.3.0.0.0

CI/CDパイプラインや自動診断スクリプトに組み込む場合に有用です。


Oracle Databaseのバージョン一覧と現況(2026年6月時点)

主要バージョンの歴史と、現在のサポート状況を整理します。

バージョン正式名称リリースサポート期間状況
11g R2Oracle Database 11g Release 22009終了非推奨
12c R1Oracle Database 12c Release 12013終了非推奨
12c R2Oracle Database 12c Release 22016終了非推奨
18cOracle Database 18c2018終了非推奨
19cOracle Database 19c2019〜2027年4月LTS(本番運用の主流)
21cOracle Database 21c2021終了(Innovation)既存環境のみ
23aiOracle Database 23ai (旧23c)202426aiに統合26aiへ統合済み
26aiOracle AI Database 26ai2026年1月LTS最新の長期サポート版

19cが今も主流の理由

19cは「Long Term Support(LTS)」リリースとして、2027年4月までプレミアムサポートが提供されています。本番環境のOracleの多くは現在も19cで運用されており、近年は19cから26ai(旧23ai)への直接アップグレードが標準ルートになっています。

23ai → 26ai への名称変更

2025年10月のリリースアップデート(23.26)において、Oracle Database 23aiは「Oracle AI Database 26ai」にブランド統合されました。製品名から「Database」が消えて「AI Database」となり、バージョン番号も23から26へと飛んでいます。

オンプレミス版のEnterprise Edition(Linux x86-64)は2026年1月にリリースされており、今後新規導入される長期サポート対象のOracleは26aiが標準になります。


用途別:どの方法を使うべきか

状況に応じた使い分けの指針です。

用途推奨方法
とにかく今すぐ知りたいSELECT * FROM V$VERSION;
サポート問い合わせ用V$INSTANCE + DBA_REGISTRY_SQLPATCH
監査・コンプライアンス報告V$INSTANCE + V$LICENSE + パッチ一覧
シェルスクリプトで判定oraversion -compositeVersion
GUI担当者に確認させるSQL Developer のレポート機能
DBダウン中の確認opatch lsinventory または oraversion
クライアントツール側sqlplus -v
プログラムから取得各言語ドライバの version プロパティ

マルチテナント環境(CDB/PDB)での注意点

12c以降のマルチテナント構成では、CDB(コンテナDB)とPDB(プラガブルDB)でバージョンが異なる場合があります。

現在の接続コンテナを確認

SHOW CON_NAME
-- または
SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM DUAL;

PDBごとのバージョン情報

SELECT CON_ID, NAME, OPEN_MODE 
FROM V$PDBS;

-- 特定PDBに切り替えてバージョン確認
ALTER SESSION SET CONTAINER = MYPDB;
SELECT * FROM V$VERSION;

特にPDBプラグイン後の互換性チェック時に重要です。


よくある質問(FAQ)

Q1. V$VERSIONとPRODUCT_COMPONENT_VERSIONはどう違いますか?

V$VERSION動的パフォーマンスビューで、現在起動中のインスタンス情報を返します。PRODUCT_COMPONENT_VERSIONディクショナリビューで、データベースにインストールされた各コンポーネントの情報を返します。表示内容はほぼ同じですが、参照元が異なります。

Q2. 「21c」「23ai」のcaiは何の略ですか?

c = Cloudai = AI の略です。Oracleはバージョンに時代を表す英字を付けてきました(i=Internet、g=Grid、c=Cloud、ai=AI)。

Q3. 23aiと26aiは別物ですか?

別物ではなく、23aiが26aiに名称統合された形です。23.26リリース以降は同一コードラインとして「Oracle AI Database 26ai」と呼ばれます。

Q4. クライアントとサーバーのバージョンが違っても接続できますか?

基本的には可能です。Oracleでは「クライアント・サーバー間の互換性マトリクス」が公開されており、近接バージョン間は互換性が保たれています。ただし、機能的な制約や非推奨警告が出る組み合わせがあるため、本番環境では公式マトリクスを必ず確認してください。

Q5. パッチ番号まで含めた「完全バージョン」を知りたい場合は?

V$INSTANCE.VERSION_FULL または PRODUCT_COMPONENT_VERSION.VERSION_FULL を確認してください。さらにDBA_REGISTRY_SQLPATCHで適用済みSQLパッチも併せて確認するのが正確です。

Q6. 19cと26aiが共存しているサーバーでバージョン確認する場合は?

各Oracle Homeごとに ORACLE_HOME 環境変数を切り替えてから sqlplus を起動するか、フルパスで指定(例: /u01/app/oracle/product/19c/dbhome_1/bin/sqlplus)してください。oraversionコマンドもOracle Home配下にあるので、対象のHomeから実行する必要があります。

Q7. Express Edition(XE)でもV$VERSIONは使えますか?

はい、使えます。Express Edition、Standard Edition、Enterprise Edition、Free(旧Free Tier)すべてで同じSQLが動作します。

Q8. Autonomous Databaseのバージョンはどう確認しますか?

通常のOracle Databaseと同じく SELECT * FROM V$VERSION; で確認できます。Autonomousは自動的にパッチが適用されるため、定期的に最新バージョンに更新されています。なお2025年以降、製品名は「Oracle Autonomous AI Database」に変更されています。

Q9. RACの場合、ノードごとにバージョンが違うこともありますか?

ローリングアップグレード中など、一時的にノード間でバージョンが異なるケースがあります。GV$INSTANCE(グローバルビュー)を使うと全ノードのバージョンを一括確認できます:

SELECT INST_ID, INSTANCE_NAME, VERSION_FULL 
FROM GV$INSTANCE 
ORDER BY INST_ID;

Q10. バージョンを確認したら古かった。アップグレードすべき?

サポート期限(Premier Support/Extended Support)を過ぎている場合は速やかにアップグレードを推奨します。19cは2027年4月までサポートされるため、それまでに26aiへの移行計画を立てるのが現実的です。


まとめ

Oracle Databaseのバージョン確認には多数の方法があり、状況に応じて使い分けることが重要です。

  • 手軽さ重視なら SELECT * FROM V$VERSION;
  • 詳細情報なら V$INSTANCEPRODUCT_COMPONENT_VERSION
  • DB停止中なら opatch lsinventory または oraversion
  • スクリプト用途なら sqlplus -v または oraversion -compositeVersion
  • パッチレベルまで含めるなら DBA_REGISTRY_SQLPATCH

2026年6月時点では、本番運用は19c中心、新規導入は最新長期サポート版の26aiが標準ルートとなっています。バージョン確認は単なる情報取得ではなく、サポート期限・脆弱性対応・アップグレード計画の起点になる重要な作業です。本記事で紹介した方法を使い分け、自社のOracle環境を正しく把握しましょう。


本記事は2026年6月時点の情報をもとに作成しています。Oracleのバージョン体系やサポート期限は変更される可能性があるため、最新の情報はOracle公式ドキュメントをあわせてご確認ください。