オラクル

ORACLE 無償版 XE-21cをSQL DEVLOPERで使う手順

オラクル

こんにちは! 健史です。

ORACLE 無償版をインストールしたけど、思うように使えない!とあきらめている方、おりませんか。

手順は、数回、アンインストールとインストールして確認しています。

OracleXEのバージョンは、2023年4月時点で最新の「21c」での手順です。


手順を確立する上で、ハマったのが以下の2つです。

2.ORACLE無償版の初期設定

4.SQL-DEVLOPERのの初期設定
[SID(I)]が選択されていますが[サービス名(E)]に選択を変更し、「XEPDB1」と入力します。

このために何度アンインストールしたことか・・・

スポンサーリンク

ORACLE無償版のダウンロードとインストール

ダウンロード

「ORACLE 無償版 ダウンロード」で検索し、ダウンロードします。


インストール

インストール先は、新規に作成したフォルダ[C:\oracle]としています。

パスワードは、[orapass]を設定しています。

ともに好みに合わせて変更して頂ければと思います。

[C:\oracle]を作成しました。

ダウンロードしたファイルをダブルクリックし、解凍します。

[setup.exe]をダブルクリックして、実行します。





[oraadmin]と入力しています。




ORACLE無償版の初期設定

初期設定はコマンドプロントから以下を実行するのみです。

作成するユーザID・パスワードはともに[user01]としています。

sqlplus sys/orapass@XE as sysdba

alter session set container = XEPDB1;

exit

sqlplus sys/oraadmin@//localhost:1521/XEPDB1 as sysdba

CREATE USER user01
IDENTIFIED BY user01
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE DEFAULT
;

grant connect to user01;

grant resource to user01;

grant unlimited tablespace to user01;

exit

参考までに実行結果を載せます。

C:\>sqlplus sys/orapass@XE as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 8 15:01:11 2023
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> alter session set container = XEPDB1;

セッションが変更されました。

SQL> exit
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0との接続が切断されました。

C:\>sqlplus sys/oraadmin@//localhost:1521/XEPDB1 as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 8 15:02:25 2023
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> CREATE USER  user01
  2  IDENTIFIED BY  user01
  3  DEFAULT TABLESPACE  USERS
  4  TEMPORARY TABLESPACE  TEMP
  5  PROFILE  DEFAULT
  6  ;

ユーザーが作成されました。

SQL> grant connect to user01;

権限付与が成功しました。

SQL> grant resource to user01;

権限付与が成功しました。

SQL> grant unlimited tablespace to user01;

権限付与が成功しました。

SQL> exit
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0との接続が切断されました。

C:\>

SQL DEVLOPERのダウンロードと解凍

SQL DEVLOPERをダウンロードするには、「Oracleプロファイル」といって、いわゆるアカウントを作成しておく必要があります。

会社名を登録しても、会社に連絡があったりすることは無いようです。

仮にあってもやましいことをしているわけではないし、自己啓発のためにやっているのですから、問題はありません。

学生の方や個人事業主の方などは、SELFなどと入力すればよいようです。

それでも抵抗があるようでしたら「A5:SQL Mk-2」などのフリーツールを使って頂ければと思います。


「ORACLE SQL DEVLOPER ダウンロード」で検索し、ダウンロードします。



解凍したフォルダを[右クリック]-[コピー]して、配置したいフォルダに[貼り付け]します。


当記事では[ダウンロード]フォルダにコピーしました。

SQL-DEVLOPERのの初期設定

この記事のために、一度配置した[sqldevloper]フォルダを削除し、再度ダウンロードと解凍して起動したのですが、最初に設定した情報が残っていました。

一度設定した内容はレジストリかどこかに保存されているようで、削除して違うフォルダに解凍したものをコピーしても残るようです。

この記事のために設定した内容を削除し、初期状態に戻したつもりですが、初めての方でこの記事の内容と違っていたらごめんなさい。

ということを前提に手順を進めます。

[sqldevloer.exe]を起動します。ショートカットを作成しデスクトップに置いておくと便利です。

「+」をクリックするか、[Oracle接続]を右クリックし[接続の作成(A)]を選択します。以下は後者ですが、見にくいので拡大版を載せます。

[Name]、[ユーザ名(U][パスワード(P)]を入力します。
[SID(I)]が選択されていますが[サービス名(E)]に選択を変更し、「XEPDB1」と入力します。

そして[テスト(T)]をクリックして、[ステータス]に「成功」が表示されればOKです。

ここで[接続(O)]をクリックして起動してもよいですが、いったん画面を閉じて再起動しています。

再起動後に上記で[Name]設定したDBをクリックします。

[ユーザ名(U][パスワード(P)]を入力し、[OK]をクリックすると起動します。

表を作成してみる

CREATE文を入力し[スクリプトの実行(F5)]をクリックします。

このCREATE文は、一度作成したものをDDL生成ツール[SQL]で作成したものをバックアップしておいたものです。そのため、細かい設定が記述されています。

DDL生成ツール[SQL]は2つ下のハードコピーの赤枠で囲った部分です。

左ペインの[表(フィルタ対象)]をクリックすると作成したテーブルが表示されます。

[データ]に切り替えました。

補足:OracleXE-21Cのデータベースの構成

Oracle12以降、オラクルは大きく3つに分類されたDB構成になっています。

1.CDB$ROOT・・・コンテナDBと言われ、ここを指定してテーブルなど作成できない
2.PDB$SEED・・・プラガブルDB(PDB)と言われ、ここを指定してテーブルなど作成できない
3.XEPDB1・・・・プラガブルDB(PDB)と言われ、ここが使えるDBで、テーブルなど自由に作成できる

3つの物理的な関係は、「[1.]の器の中に[2.][3.]がある・作られる」です。

理解する上では「3つのDBがある」との見方もありです。※1

OracleXE-21Cをインストールすると、[1.][2.]に加え[3.]も作られます。
(物理的な関係からの説明:[1.]の器が作られ、その器のなかに[2.][3.]が作られる)

正しくは「テーブルなど自由に作成できるプラガブルDB(PDB)の1つが、[XEPDB1]という名称で作成されている」です。

そして、テーブルなど自由に作成できるプラガブルDB(PDB)は、増やすことができます。

XEPDB2とか、GYOUMU、KEIRI、SEISAN、HANBAIとか。

※1:なので、増やすことによって、3つ以上のDBにすることができます、なることがあります。


[1.][2.][3.]があることを確認してみましょう。

C:\>sqlplus sys/oraadmin@XE as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 22 03:53:27 2023
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> show con_name

CON_NAME
------------------------------
CDB$ROOT


SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XEPDB1                         READ WRITE NO
SQL>

[show con_name]でコンテナDB、[show pdbs]で2つのプラガブルDBを確認できました。


そして、アクセスできる、SQL文などが使えるのは、1つのDBです。

インストール直後は、[1.CDB$ROOT:コンテナDB]がアクセス可能になっていて、[3.XEPDB1:プラガブルDB(PDB)]にアクセスするためには、切り替えが必要です。

C:\>sqlplus sys/orapass@XE as sysdba

SQL*Plus: Release 21.0.0.0.0 - Production on 土 4月 8 15:01:11 2023
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> alter session set container = XEPDB1;

セッションが変更されました。

[3.XEPDB1:プラガブルDB(PDB)]から[1.CDB$ROOT:コンテナDB]への切り替えです。

SQL> alter session set container = CDB$ROOT;

「プラガブルDB」の語源は、電源をとるブラグに見立て「コンテナに接続できるDB」のようです。ですから増やすこともできます。


上記のことをキチンと理解していなかったため、そして基本を守っていなかったために、SQL-DEVLOPERを使えず、ネットで検索し間違ったこと:自由に使えるPDBがあるのに「作成しなければならないのかなぁ?」なんてことをしていました。

Oracle12のときから名前は違っていたようですが、インストールすればプラガブルDB(PDB)は作られていたようです。

繰り返します。

OracleXE-21Cでもインストールすれば、自由に使えるプラガブルDB(PDB):XEPDB1が作られています。

最後に

想定どおり動作するようになるまで、調査と試行錯誤を何度も繰り返しました。

結果的に、初期設定では数分で済む、とても少ない工程で使用できるようになりました。

応用情報処理技術者試験の午後問「データベース」対策、及び、現場で疑問に思っていたこと、「こういうこと、できないのかな?」といったこともあり、導入してみました。

SQL-DEVLOPERはObjecdtBrowserには劣りますが、幾つか使ったツールに比べ最も近しいと思います。

オラクル
スポンサーリンク
- 面白かったらシェアお願いします! -
健史をフォローする
自分で改善

コメント