【完全版】Oracle Database バージョン確認方法まとめ|SQL・コマンドを徹底解説
- 作成日 2026.06.08
- Oracle Database その他
「いま使っているOracle Databaseは何バージョン?」「パッチは適用済み?」――こうした確認は、トラブルシューティング、アップグレード計画、サポート問い合わせなどあらゆる場面で必要になります。
しかし、Oracleにはバージョン確認方法が10種類以上存在し、状況によって使い分けが必要です。さらに、2025年10月には「Oracle Database 23ai」が「Oracle AI Database 26ai」にブランド統合されるなど、最新事情も追いついていない記事が多いのが現状です。
本記事では、SQLによる方法・コマンドラインによる方法・GUIツールによる方法・パッチレベル確認・プログラム言語からの確認まで、全パターンを実例コード付きで網羅します。Oracle 19c、21c、23ai、26ai、それぞれの最新状況も解説するので、この1本でバージョン確認に関するあらゆる疑問が解決します。
- 1. 結論:最速で確認したい人へ
- 2. バージョン情報を構成する5つの要素
- 3. 【方法①】V$VERSION で確認する(最も基本)
- 4. 【方法②】PRODUCT_COMPONENT_VERSION でコンポーネント別に確認
- 5. 【方法③】V$INSTANCE でインスタンス情報とまとめて確認
- 6. 【方法④】V$DATABASE で詳細属性とあわせて確認
- 7. 【方法⑤】SQL*Plus接続時のバナーで確認
- 8. 【方法⑥】sqlplus -v でクライアントだけ確認
- 9. 【方法⑦】SQL Developer GUI から確認
- 10. 【方法⑧】A5:SQL Mk-2 から確認
- 11. 【方法⑨】Oracle Enterprise Manager(OEM)から確認
- 12. 【方法⑩】Linuxコマンドラインから確認(DBに接続不要)
- 13. 【方法⑪】パッチレベルを確認する(重要)
- 14. 【方法⑫】プログラム言語からバージョン取得
- 15. Oracle Databaseのバージョン一覧と現況(2026年6月時点)
- 16. 用途別:どの方法を使うべきか
- 17. マルチテナント環境(CDB/PDB)での注意点
- 18. よくある質問(FAQ)
- 18.1. Q1. V$VERSIONとPRODUCT_COMPONENT_VERSIONはどう違いますか?
- 18.2. Q2. 「21c」「23ai」のcやaiは何の略ですか?
- 18.3. Q3. 23aiと26aiは別物ですか?
- 18.4. Q4. クライアントとサーバーのバージョンが違っても接続できますか?
- 18.5. Q5. パッチ番号まで含めた「完全バージョン」を知りたい場合は?
- 18.6. Q6. 19cと26aiが共存しているサーバーでバージョン確認する場合は?
- 18.7. Q7. Express Edition(XE)でもV$VERSIONは使えますか?
- 18.8. Q8. Autonomous Databaseのバージョンはどう確認しますか?
- 18.9. Q9. RACの場合、ノードごとにバージョンが違うこともありますか?
- 18.10. Q10. バージョンを確認したら古かった。アップグレードすべき?
- 19. まとめ
結論:最速で確認したい人へ
時間がない方向けに、最速の確認方法を先に示します。
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」で確認する手順です。
- データベースに接続する
- メニューバー「表示」→「レポート」を選択
- レポートツリー「データ・ディクショナリ・レポート」→「データベースについて」→「バージョン・バナー」を選択
- 接続するDBを選ぶと、バージョン情報が表示される
GUI操作だけで完結するので、SQLに不慣れな運用担当者でも実行できます。
接続情報パネルでも確認
接続を右クリック→「プロパティ」でも、簡易的にバージョンが表示されます。
【方法⑧】A5:SQL Mk-2 から確認
国産の人気SQLクライアント「A5:SQL Mk-2」での確認手順:
- 対象データベースに接続
- メニュー「ツール」→「管理者ツール」を開く
- 「バージョン」タブを選択すると、バージョン情報が表示される
画面表記が日本語で、わかりやすいのが特徴です。
【方法⑨】Oracle Enterprise Manager(OEM)から確認
EM Expressの場合は、デフォルトで https://localhost:5500/em/ から接続できます。
- ブラウザで EM URLにアクセス
- SYSユーザーでログイン
- ダッシュボード上部に「Oracle Database 21c」のようにバージョンが表示される
- 「構成」→「データベース・バージョン」でより詳細な情報を確認
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 R2 | Oracle Database 11g Release 2 | 2009 | 終了 | 非推奨 |
| 12c R1 | Oracle Database 12c Release 1 | 2013 | 終了 | 非推奨 |
| 12c R2 | Oracle Database 12c Release 2 | 2016 | 終了 | 非推奨 |
| 18c | Oracle Database 18c | 2018 | 終了 | 非推奨 |
| 19c | Oracle Database 19c | 2019 | 〜2027年4月 | LTS(本番運用の主流) |
| 21c | Oracle Database 21c | 2021 | 終了(Innovation) | 既存環境のみ |
| 23ai | Oracle Database 23ai (旧23c) | 2024 | 26aiに統合 | 26aiへ統合済み |
| 26ai | Oracle AI Database 26ai | 2026年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」のcやaiは何の略ですか?
c = Cloud、ai = 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$INSTANCE、PRODUCT_COMPONENT_VERSION - DB停止中なら
opatch lsinventoryまたはoraversion - スクリプト用途なら
sqlplus -vまたはoraversion -compositeVersion - パッチレベルまで含めるなら
DBA_REGISTRY_SQLPATCH
2026年6月時点では、本番運用は19c中心、新規導入は最新長期サポート版の26aiが標準ルートとなっています。バージョン確認は単なる情報取得ではなく、サポート期限・脆弱性対応・アップグレード計画の起点になる重要な作業です。本記事で紹介した方法を使い分け、自社のOracle環境を正しく把握しましょう。
本記事は2026年6月時点の情報をもとに作成しています。Oracleのバージョン体系やサポート期限は変更される可能性があるため、最新の情報はOracle公式ドキュメントをあわせてご確認ください。
-
前の記事
Ubuntuで「No space left on device」発生時の対処法 2026.06.08
-
次の記事
UbuntuでNASを自動マウントする設定方法を掲載中 2026.06.08
コメントを書く