Windows 11 Pro に無料の Oracle Database 21c Express Edition(XE)をインストールして外部から接続する手順

Windows 11に無料で入れる Oracle DB。Express Edition(XE)の導入と外部接続の手順 Oracle

Windows 11 Pro に、無料で使える Oracle Database 21c Express Edition(以下 XE)を GUI のインストーラーで入れ、別のコンピューターから SQL*Plus で接続できるようにするまでの手順です。XE で使える範囲(ライセンス・制限・機能)と、接続できないときのエラーの見分け方も載せています。

Oracle Database 21c XE を入れて外部から接続するまでの流れ。ダウンロード、展開、インストーラー、確認、サーバー上での接続、ファイアウォールで 1521 番を許可、外部からの接続の 7 段階
XE は 21c が最後の版です(2026 年 11 月時点)。後継は無料の Oracle AI Database 26ai Free(旧 23ai Free)です。21c の XE にはパッチが提供されません。また Oracle のドキュメントでは、Oracle Database 21c が Windows 11 をサポートするのは Release Update 21.4 以降で、21.3 のままの XE は公式のサポートの対象外です(この記事では Windows 11 Pro 25H2 で動くことを確かめています)。詳しくは Oracle のドキュメント(対応 OS)・XE から Free への移行を見てください。

Oracle Database XE とは

XE は、Oracle Database の無料版です。インストーラーで作られるデータベースは、入れ物のコンテナ・データベース(CDB)「XE」の中に、アプリのデータを置くプラガブル・データベース(PDB)「XEPDB1」が入った形になります。

Oracle Database 21c XE のデータベースの形。コンテナ・データベース XE の中にルート CDB$ROOT、シード PDB$SEED、プラガブル・データベース XEPDB1 がある。接続先は localhost:1521/XE と localhost:1521/XEPDB1

ライセンス(無料で使える範囲)

XE は Oracle Free Use Terms and Conditions という条件で配布されています(インストーラーの「使用許諾条項」の画面にも、この名前が出ます)。主な内容は次のとおりです。

  • 自社のアプリケーションの開発・テスト・試作・デモに使える
  • 自社の業務のために動かせる(本番での利用も含む)
  • 改変しないまま再配布できる(利用者に追加の料金を取らないこと)
  • パッチと Oracle のサポートは提供されない(質問は Oracle のコミュニティ・フォーラム)

実際に業務で使うかどうかは、条文そのものを確かめてから判断してください。

リソースの制限

XE は、使う資源が自動で次の範囲に抑えられます(Oracle のドキュメント)。

項目XE の上限
CPU2 コアまで(それ以上あっても自動で 2 コア分に制限)
メモリ2 GB まで(この記事の環境では SGA 約 1.5 GB・PGA 0.5 GB に設定されていた)
ユーザーのデータ12 GB まで
インストール1 つの環境(物理マシン・仮想マシン・コンテナ)に 1 つだけ。2 つ目は ORA-00442 で起動しない
PDB の数ライセンス上は 252 個まで。実際は上のメモリ・データの制限で少なくなる

PDB は 18c の XE では 3 つまででしたが、21c では増えています。この記事の環境では、XEPDB1 のほかに 3 つの PDB を作って開けることを確かめました(確かめた後に削除)。

使える機能・使えない機能

主なものを抜き出しました。全体は Licensing Information User Manual の表にあります。

区分機能
使えるマルチテナント(PDB)、パーティション、Database In-Memory、Advanced Compression(一部を除く)、Advanced Security(TDE による表領域の暗号化など)、Database Vault、Label Security、Oracle Machine Learning、Spatial and Graph
使える(制限あり)EM Express(データベースの管理画面)。最初はそのパソコンからだけ https://localhost:5500/em で開ける
使えないパラレル処理(パラレル・クエリ・パラレル DML など)、RAC・Data Guard・Sharding などの複数ノードの機能、Real Application Testing、Enterprise Manager の管理パック(Diagnostics Pack・Tuning Pack など)
含まれていない(別にダウンロードして使える)SQL Developer、APEX(Oracle APEX)、ORDS(Oracle REST Data Services)、Oracle Developer Tools for Visual Studio

データベースの文字セットは AL32UTF8(Unicode)で、インストーラーで選ぶ画面はありません。アプリケーション側で別の文字コードを使うときは、クライアントの NLS_LANG で変換できます。

インストールする環境と準備

項目この記事の環境
OSWindows 11 Pro 25H2(ビルド 26200)。Home エディションはインストーラーが対応していない
コンピューター名(例)DBHOST01
IP アドレス(例)192.168.1.110
インストールするユーザーAdministrators グループの直接のメンバー(「管理者として実行」だけでは足りない)

このほか、インストール・ガイドには次の条件があります。

  • 環境変数 ORACLE_HOME と TNS_ADMIN を設定していない(システムの環境変数から外す)
  • XE(または SID が XE のデータベース)がまだ入っていない
  • インストール先のフォルダの名前にスペースを含まない

ダウンロード

Oracle Database 21c Express Edition のダウンロードページから、Oracle Database 21c Express Edition for Windows (64-bit) をダウンロードします。2026 年 11 月時点では、Oracle のアカウントでサインインしなくてもダウンロードできました。

ファイル名大きさSHA-256
OracleXE213_Win64.zip1,967,615,483 バイト(約 1.9 GB)939742c3305c466566a55f607638621b6aa7033a183175f6bcd6cffb48e6bc3f

ダウンロードしたら、PowerShell で SHA-256 を表示し、上の値と一致するか確かめておくと安心です。

PS C:\> (Get-FileHash .\OracleXE213_Win64.zip).Hash
939742C3305C466566A55F607638621B6AA7033A183175F6BCD6CFFB48E6BC3F

この記事のコマンドやパスでは \(バックスラッシュ)を使っています。日本語のフォントでは ¥ に見えることがありますが、同じ文字です。

インストール

展開して setup を実行する

OracleXE213_Win64.zip を展開し(この記事では C:\temp\OracleXE213_Win64)、中の setup をダブルクリックします。「ユーザー アカウント制御」の確認が出たら「はい」を押します。

エクスプローラーで C:\temp\OracleXE213_Win64 を開き、setup をダブルクリックする

「インストールの準備をしています」と表示されたあと、ウィザードが開きます。「次へ」を押します。

Oracle Database 21c Express Edition の InstallShield ウィザードへようこその画面。次へを押す

使用許諾条項

使用許諾は Oracle Free Use Terms and Conditions です。「使用許諾条項を受け入れます」を選んで「次へ」を押します。

使用許諾条項の画面。Oracle Free Use Terms and Conditions を確かめ、使用許諾条項を受け入れますを選んで次へ

インストール先(宛先フォルダ)

インストール先は、最初は C:\app\(ユーザー名)\product\21c\ になっています。そのままでもかまいませんが、この記事ではユーザー名を含まない C:\app\product\21.0.0\ に変えます。「変更」を押します。

宛先フォルダの画面。最初のインストール先は C:\app\admin\product\21c\。変更を押す

「フォルダ名」を書き換えて「OK」を押します。

現在の宛先フォルダの変更の画面。フォルダ名を C:\app\product\21.0.0\ に書き換えて OK

インストール先が変わったことを確かめて「次へ」を押します。

宛先フォルダが C:\app\product\21.0.0\ に変わった。次へを押す

データベースのパスワード

SYS・SYSTEM・PDBADMIN の 3 つの管理用ユーザーに共通のパスワードを、2 か所に入力して「次へ」を押します。この記事では練習用に manager にしました。

Oracle Database 情報の画面。SYS、SYSTEM、PDBADMIN に共通のパスワードを 2 か所に入力して次へ
本番では強いパスワードにしてください。Oracle は、12 文字以上で英大文字・英小文字・数字をそれぞれ 1 つ以上含むパスワードを推奨しています(manager のような短いパスワードでも、この画面では警告は出ませんでした)。

サマリーとインストール

宛先フォルダ・Oracle ホーム・Oracle ベースを確かめて「インストール」を押します。

サマリーの画面。宛先フォルダ C:\app\product\21.0.0\、Oracle ホーム C:\app\product\21.0.0\dbhomeXE\、Oracle ベース C:\app\product\21.0.0\ を確かめてインストール

インストールの途中で、Windows セキュリティの「パブリック ネットワークとプライベート ネットワークにこのアプリへのアクセスを許可しますか?」(Java(TM) Platform SE binary)が出ることがあります。この記事の環境では「キャンセル」を押しましたが、インストールにも、このあとの外部からの接続にも影響はありませんでした(外部からの接続は、後で 1521 番ポートの規則を作って許可します)。

インストール中に出た Windows セキュリティの確認。Java(TM) Platform SE binary。この記事ではキャンセルを押した

インストールとデータベースの作成が進みます。この記事の環境では約 10 分かかりました。

Oracle Database 21c Express Edition をインストール中の画面。ステータスは Oracle コンポーネントを構成中

「Oracle Database が正常にインストールされました。」と出たら完了です。表示される接続情報は次の意味です。「完了」を押して閉じます。

インストール完了の画面。マルチテナント・コンテナ・データベース localhost:1521、プラガブル・データベース localhost:1521/XEPDB1、EM Express URL https://localhost:5500/em
表示接続先
マルチテナント・コンテナ・データベース: localhost:1521CDB のルート(CDB$ROOT)。サービス名 XE
プラガブル・データベース: localhost:1521/XEPDB1PDB「XEPDB1」。アプリのデータはこちらに置く
EM Express URL: https://localhost:5500/em管理画面。このパソコンのブラウザからだけ開ける

インストールされたものを確かめる

レジストリに登録された設定

インストーラーは、Oracle を動かすための設定をレジストリに登録します。環境変数と同じ働きをしますが、システムの環境変数には入っていません。

Windows キー+R で「ファイル名を指定して実行」を開き、regedit と入力してレジストリ エディターを開きます。HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB21Home1 を選ぶと、右側に設定が並びます。

レジストリ エディターで HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB21Home1 を開いたところ。NLS_LANG、ORA_XE_AUTOSTART、ORACLE_BASE、ORACLE_HOME、ORACLE_SID の値
名前値(この記事の環境)意味
ORACLE_HOMEC:\app\product\21.0.0\dbhomeXEOracle のソフトウェアの場所
ORACLE_BASEC:\app\product\21.0.0Oracle 関係のフォルダの基点
ORACLE_SIDXEデータベース(インスタンス)の名前
NLS_LANGJAPANESE_JAPAN.JA16SJISTILDESQL*Plus などが使う言語と文字コード。データベースの文字セット(AL32UTF8)とは別のもの
ORA_XE_AUTOSTARTTRUEサービスを開始するとデータベースも起動する
ORACLE_HOME_READONLYY読み取り専用 Oracle ホーム。設定ファイルは別の場所(homes\OraDB21Home1)に置かれる

PATH に Oracle の bin が入る

コマンドプロンプトで PATH を表示すると、先頭に Oracle の bin フォルダが入っています。これで、どのフォルダからでも sqlplus や lsnrctl を実行できます。

C:\Users\admin>echo %PATH%
C:\app\product\21.0.0\dbhomeXE\bin;C:\Program Files\Python314\Scripts\;…
コマンドプロンプトで echo %PATH% を実行。先頭に C:\app\product\21.0.0\dbhomeXE\bin が入っている

(2 つ目以降のフォルダは環境によって違います。)

スタートメニュー

インストール直後は、スタートメニューの「おすすめ」に Oracle のツールが「最近追加」として表示されます。ふだんは「すべて」の一覧の Oracle – OraDB21Home1 から開きます。

スタートメニューのおすすめに Net Configuration Assistant、Database Configuration Assistant、Oracle ODBC ヘルプ、Wallet Manager、Locale Builder、Net Manager が最近追加として表示されている

サービス

Windows キー+R で services.msc を実行してサービスの一覧を開きます。次の 2 つが「実行中」・「自動」になっていれば、データベースとリスナーが動いています。

サービス名役割
OracleServiceXEデータベース(インスタンス XE)
OracleOraDB21Home1TNSListenerリスナー(外部からの接続を受け付ける窓口。1521 番ポート)
サービスの一覧。OracleOraDB21Home1MTSRecoveryService、OracleOraDB21Home1TNSListener、OracleServiceXE、OracleVssWriterXE が実行中・自動。OracleJobSchedulerXE は無効

サービスを再起動しても、XEPDB1 は自動で開きます(インストーラーが「起動したら開く」状態を記録済みのため。この記事の環境で確認)。

認証の設定(sqlnet.ora)

接続の設定ファイルは、Oracle ホームではなく C:\app\product\21.0.0\homes\OraDB21Home1\network\admin にあります。この中の sqlnet.ora には、最初から次の設定が入っています。

# sqlnet.ora Network Configuration File: C:\app\product\21.0.0\homes\OraDB21Home1\NETWORK\ADMIN\sqlnet.ora
# Generated by Oracle configuration tools.

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

NTS は、Windows にサインインしているユーザーの情報で Oracle に接続する設定です。サインインしているユーザーが ORA_DBA グループに入っていれば、パスワードなしで sqlplus / as sysdba と入力して管理者として接続できます(/ の前後にスペースが必要です)。インストールしたユーザーは、自動でこのグループに入ります。

リスナーの状態

リスナーは、外部からの接続を受け付けてデータベースへつなぐ窓口です。コマンドプロンプトで lsnrctl status を実行して、状態を確かめます。

C:\Users\admin>lsnrctl status

LSNRCTL for 64-bit Windows: Version 21.0.0.0.0 - Production on 07-11月-2026 22:08:00

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DBHOST01)(PORT=1521)))に接続中
リスナーのステータス
(略)
デフォルト・サービス           XE
パラメータ・ファイル      C:\app\product\21.0.0\homes\OraDB21Home1\network\admin\listener.ora
(略)
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DBHOST01)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=127.0.0.1)(PORT=5500))…)
サービスのサマリー...
(略)
サービス"XE"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する2件のハンドラがあります...
サービス"XEXDB"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する1件のハンドラがあります...
サービス"xepdb1"には、1件のインスタンスがあります。
  インスタンス"xe"、状態READYには、このサービスに対する2件のハンドラがあります...
コマンドは正常に終了しました。
lsnrctl status の実行結果。待ち受けアドレスの HOST がコンピューター名 DBHOST01、サービスのサマリーに XE と xepdb1 が登録されている

確かめるのは次の 2 点です。

  • 待ち受けアドレスの HOST が、外部から届く名前(この記事の環境ではコンピューター名の DBHOST01)になっていること
  • サービスのサマリーに XE(CDB)と xepdb1(PDB)が出ていること

tcps の 5500 番は EM Express です。127.0.0.1(このパソコン自身)でしか待ち受けていないので、外部からは開けません。

HOST がうまく引けない名前になっている場合

この記事の環境では、listener.ora と tnsnames.ora の HOST はインストールしたときからコンピューター名(DBHOST01)で、書き換えなくても外部から(接続先に IP アドレスを指定して)接続できました。

環境によっては、HOST が「コンピューター名.localdomain」のように DNS サフィックスの付いた名前になることがあります(以前この記事を書いた環境では PC-A.localdomain でした)。その名前がネットワークの変更などで引けなくなると、リスナーが起動しない・データベースが登録されないといった問題が起きます。そのときは、2 つのファイルの HOST をコンピューター名に書き換えます(この記事の環境では書き換えが不要だったため、この手順は試していません)。

どちらのファイルも C:\app\product\21.0.0\homes\OraDB21Home1\network\admin にあります。コード中の赤い太字は、自分の環境に合わせて書き換える部分です。

C:\Users\admin>notepad C:\app\product\21.0.0\homes\OraDB21Home1\network\admin\listener.ora
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = DBHOST01)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
C:\Users\admin>notepad C:\app\product\21.0.0\homes\OraDB21Home1\network\admin\tnsnames.ora
XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DBHOST01)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = DBHOST01)(PORT = 1521))

tnsnames.ora の LISTENER_XE も忘れずに直します。データベースは起動するとき、初期化パラメータ LOCAL_LISTENER に書かれた名前(LISTENER_XE)が指すアドレスのリスナーに、自分のサービス(XE・xepdb1)を登録するためです。書き換えたら、サービス OracleOraDB21Home1TNSListener と OracleServiceXE を再起動し、lsnrctl status で XE と xepdb1 が出ることを確かめます。

サーバー上で接続を確かめる

コマンドプロンプトで SQL*Plus を実行し、接続できるかを確かめます。

C:\Users\admin>sqlplus system/manager

SQL*Plus: Release 21.0.0.0.0 - Production on 土 11月 7 22:08:48 2026
Version 21.3.0.0.0

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

最終正常ログイン時間: 土 11月 07 2026 21:55:30 +09:00


Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。
SQL>
サーバー上で sqlplus system/manager を実行し、Oracle Database 21c Express Edition に接続されたところ

ルート(CDB$ROOT)に接続する

sqlplus / as sysdba で接続すると、CDB のルート(CDB$ROOT)に入ります。使えるサービスを v$services で表示し、今いるコンテナと PDB の一覧を確かめます。

C:\Users\admin>sqlplus / as sysdba
(略)
SQL> col name for a15
SQL> col pdb for a10
SQL> select name, pdb from v$services;

NAME            PDB
--------------- ----------
xeXDB           CDB$ROOT
SYS$BACKGROUND  CDB$ROOT
SYS$USERS       CDB$ROOT
xe              CDB$ROOT
xepdb1          XEPDB1

SQL> show con_name

CON_NAME
------------------------------
CDB$ROOT
SQL> show con_id

CON_ID
------------------------------
1
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XEPDB1                         READ WRITE NO
sqlplus / as sysdba で接続し、v$services、show con_name、show pdbs を実行した画面。サービス xe と xepdb1、今いるコンテナは CDB$ROOT、PDB は PDB$SEED と XEPDB1

PDB$SEED は、新しい PDB を作るときのひな形(読み取り専用)です。アプリのデータは XEPDB1 に置きます。

XEPDB1 に接続する

接続先に localhost:1521/XEPDB1 を付けると、PDB の XEPDB1 に入ります(:1521 は省略できます)。

C:\Users\admin>sqlplus /@localhost:1521/XEPDB1 as sysdba
(略)
SQL> select name, pdb from v$services;

NAME            PDB
--------------- ----------
xepdb1          XEPDB1

SQL> show con_name

CON_NAME
------------------------------
XEPDB1
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         3 XEPDB1                         READ WRITE NO
sqlplus /@localhost:1521/XEPDB1 as sysdba で接続した画面。サービスは xepdb1 だけ、CON_NAME は XEPDB1、CON_ID は 3

PDB の中では、v$services にも show pdbs にも、自分(XEPDB1)だけが表示されます。

ルートと XEPDB1 の違い(参考)

同じ確認をルート(CDB$ROOT)と XEPDB1 で行うと、次のような違いがあります(この記事の環境の値)。

SQL> select username, account_status, profile from dba_users;
SQL> select profile, limit from dba_profiles where resource_name='FAILED_LOGIN_ATTEMPTS';
SQL> select name, value from v$parameter;
確かめたことルート(CDB$ROOT)XEPDB1
ユーザーの数(dba_users)3737
片方にだけあるユーザーGSMROOTUSER(LOCKED)PDBADMIN(OPEN)
ログイン失敗の許容回数(FAILED_LOGIN_ATTEMPTS)DEFAULT 10・ORA_CIS_PROFILE 5・ORA_STIG_PROFILE 3同じ
初期化パラメータの数(v$parameter)474—
sga_target1610612736(約 1.5 GB。パソコンのメモリによって変わる)0
common_user_prefixC##(空)

外部のコンピューターから接続する

外部のコンピューターから接続するときは、次の 3 か所を通ります。どこで止まったかによって、出るエラーが変わります。

外部からの接続が通る 3 つの関門。ファイアウォールで止まると ORA-12170、リスナーが止まっていると外部からは ORA-12170・サーバー上では ORA-12541、サービス名が違うと ORA-12514

この記事では、クライアントに Windows Server 2025 を使い、Oracle Instant Client 19.19(Basic と SQL*Plus のパッケージ)を C:\verify12\instantclient_19_19 に展開して接続しました(画面のプロンプトに出るフォルダ名は、この置き場所です)。

ファイアウォールを開ける前に接続してみる

Windows 11 は、最初は 1521 番ポートへの接続をファイアウォールで止めています。このまま外部から接続すると、しばらく待たされたあと ORA-12170(タイムアウト)になります。

C:\verify12\instantclient_19_19>sqlplus -L system/manager@192.168.1.110/xe
(略)
ERROR:
ORA-12170: TNS:Connect timeout occurred
外部のコンピューターから sqlplus -L system/manager@192.168.1.110/xe を実行すると ORA-12170 TNS:Connect timeout occurred になる

-L は、接続に失敗したときにユーザー名を聞き直さずに終わらせるオプションです。メッセージが英語なのは、クライアントで NLS_LANG を設定していないためです(後で設定します)。

ファイアウォールで 1521 番を許可する

データベースのパソコン(Windows 11)で Windows キー+R を押し、firewall.cpl を実行して Windows Defender ファイアウォールを開きます。左のメニューの「詳細設定」をクリックします。

Windows Defender ファイアウォールの画面。左のメニューの詳細設定をクリック

「セキュリティが強化された Windows Defender ファイアウォール」が開きます。左の「受信の規則」を選び、右の「新しい規則…」をクリックします。

セキュリティが強化された Windows Defender ファイアウォール。受信の規則を選んで新しい規則をクリック

「新規の受信の規則ウィザード」が開きます。規則の種類は「ポート」を選んで「次へ」。

新規の受信の規則ウィザードの規則の種類。ポートを選んで次へ

「TCP」を選び、「特定のローカル ポート」に 1521 を入力して「次へ」。

プロトコルおよびポート。TCP を選び、特定のローカル ポートに 1521 を入力して次へ

「接続を許可する」のまま「次へ」。

操作。接続を許可するを選んで次へ

ドメイン・プライベート・パブリックの 3 つにチェックが付いたまま「次へ」。

プロファイル。ドメイン、プライベート、パブリックの 3 つともチェックして次へ

分かりやすい名前(例:Oracle XE Listener 1521)を付けて「完了」を押します。説明は空でもかまいません。

名前。Oracle XE Listener 1521 と入力して完了

受信の規則の一覧に追加されます。

受信の規則の一覧の先頭に Oracle XE Listener 1521 が追加された

もう一度接続する

外部のコンピューターから、もう一度接続します。今度はつながりますが、日本語が「????」で表示されます。

ファイアウォールを開けた後に外部から接続すると成功するが、日本語のメッセージが ???? になる

クライアントで NLS_LANG(SQL*Plus が使う言語と文字コード)を設定してから接続すると、日本語で表示されます。アプリケーションのデータは PDB に置くので、ここでは xepdb1 に接続します。

C:\verify12\instantclient_19_19>set NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE

C:\verify12\instantclient_19_19>sqlplus -L system/manager@192.168.1.110/xepdb1
(略)
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0
に接続されました。
SQL> show con_name

CON_NAME
------------------------------
XEPDB1
クライアントで set NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE を実行してから xepdb1 に接続。日本語で表示され、show con_name の結果が XEPDB1

set で設定した NLS_LANG は、そのコマンドプロンプトの中だけで有効です。毎回設定するのが面倒なときは、クライアントのシステムの環境変数に登録します。

接続できないときは

エラーの番号で、どこで止まっているかが分かります。この記事の環境で実際に出たものです。

エラー出た場面原因対処
ORA-12170
接続タイムアウト
外部から接続したときファイアウォールで 1521 番が止められている。
リスナーが止まっているときも、外部からはこのエラーになった
ファイアウォールで 1521 番を許可する。リスナー(OracleOraDB21Home1TNSListener)が動いているか確かめる
ORA-12541
リスナーがありません
サーバー上で接続したときリスナーが止まっているサービス OracleOraDB21Home1TNSListener を開始する(または lsnrctl start)
ORA-12514
サービスを認識していません
外部から接続したとき接続先のサービス名が違う(例:xepdb2)lsnrctl status で出るサービス名(XE・xepdb1)を指定する
日本語が ???? になる外部から接続したときクライアントで NLS_LANG を設定していないset NLS_LANG=JAPANESE_JAPAN.JA16SJISTILDE を実行してから接続する

リスナーを止めた状態で、外部とサーバー上から接続したときの画面です。同じ原因でも、出るエラーが違います。

リスナーを止めた状態で外部から接続すると ORA-12541 ではなく ORA-12170 になる
リスナーを止めた状態でサーバー上から sqlplus -L system/manager@localhost/xepdb1 を実行すると ORA-12541 TNS リスナーがありません になる

サービス名を間違えたときの画面です。

サービス名を xepdb2 と間違えて接続すると ORA-12514 になる

動作確認した環境

項目内容
確認した日2026 年 11 月 7 日
データベースのパソコンWindows 11 Pro 25H2(ビルド 26200.9711、Hyper-V の仮想マシン、メモリ 16 GB)
Oracle Database21c Express Edition(21.3.0.0.0)。OracleXE213_Win64.zip(公式の SHA-256 と一致)
クライアントWindows Server 2025(Hyper-V の仮想マシン)+ Oracle Instant Client 19.19(Basic・SQL*Plus)
確かめたことこの記事の GUI でのインストール、レジストリ・PATH・サービス・sqlnet.ora・リスナーの状態、サーバー上の接続(CDB$ROOT・XEPDB1)、PDB を追加できる数、ファイアウォールの設定、外部からの接続、表のエラー、サービスの再起動後に XEPDB1 が自動で開くこと
確かめていないことlistener.ora・tnsnames.ora の HOST の書き換え(この環境では不要だったため)、Windows 11 Home・Windows 10、EM Express の画面
タイトルとURLをコピーしました