OracleDatabase無料で利用可能な18cExpressEdition(XE)を導入する方法
DBダウンロード
まずは、18cExpressEdition(XE)のダウンロードを行います。
Oracleのダウンロードページからダウンロードします。
適当な場所にZipファイルをダウンロードする。
OracleXE184_Win64.zip
適当な場所にzipファイルを解凍する
フォルダの中身は以下のようなファイルが入っている
「setup.exe」実行ファイルをダブルクリックで開く。
インストールウィザード画面がひらくので、次へと進んでいくと、インストール完了します。
インストール完了画面

oraclexe_install_end
注意点
※すでにOraceldatabese11gExpressEditionをインストールしている方は、まず11gXEをアンインストールしないと18XEはインストールできませんでした。
ちなみに11gXEがインストールされてる状態で、18XEをインストールしてみると、
「このマシンにはすでにOracleDatabase Express Editionサービスが存在しています」
と表示されて、インストールできません。
18XE起動
インストールできたら、今度は、起動してみます。
SQL Plusを選択して起動させます。
まずは、管理者DBAでDBに接続します。
ありがちなパスワードエラーが起きた時のキャプチャです。
管理者DBAでログインするときは、
ユーザー名:sys
パスワード:as sysdba
でログインできます。
ログインできたら、次にユーザーを作成しましょう。
ユーザー作成
SQL文のCREATE USERでクエリーを作成します。
例えば、ユーザー名をextralabにして、パスワードをlab1291にするとSQL文は、下記の通りになります。
CREATE USER extralab IDENTIFIED BY "lab1291";
あれっ?ユーザー作成がエラーでできない。。。
ググったところ。Oracle11g2からOracle12cになったところで、DB(データベース)の持ち方が変わったみたいです。
知りませんでした。
Oracle12c以降からは、親DBの下に子DBが作られる仕様になっているみたいです。
SYSDBA権限でログインするとCDB(親DB)にログインしてるみたいで、そこからPDB(子DB)のユーザー作成は作成できないようです。なので、上記のORA-65096のエラーメッセージが出てきたみたいです。
対処方法
show con_name;
show con_name;を叩きセッション名を確認します。CDBになっていることを確認。
セッションを変更する。 alter session set container = XEPDB1; (18cXEをインストール完了した画面にプラガブルDB名が明記してあるのでそのDB名を入れる。)今回は、「XEPDB1」
alter session set container = XEPDB1;
変更されたのを確認します。
XEPDB1になっています。
これで、ユーザー作成ができるようになりました。
CREATE USER extralab IDENTIFIED BY “lab1291”;
権限付与
GRANT ALL PRIVILEGES TO extralab;
GRANT文でユーザーが操作できる権限を付与してあげる。細かく設定できるので、ここでは割愛させて下さい。
詳細を知りたい方は、こちらのページを参照して下さい。
GUI
GUIでデータベースを簡単に操作できるOracleSQLDeveloperを活用しよう。
Oracleのダウンロードページからダウンロードできる。
C:\app\product\18.0.0\dbhomeXE\network\admin\tnsnames.ora
のファイルを編集する。
CDB&PDB
まずは、CDBの接続を行う。
次に、PDB(プラガブル・データベース)の作成を行う。
設定値:
データベース名: NEW_PDB(任意の名前を入力します)
管理名:Admin(任意のPDB管理ユーザーの名前を入力します)
管理パスワード:任意のパスワードを入力します
記憶域: 無制限を指定します。PDB毎に使用する領域を制限できます。
「適用」ボタンをクリックして作成を実行します。
PDBのNEW_PDBが作成されました。
このままでは、まだPDBはOpenしていないようなので、状態の変更を行いDatabaseをOpen状態にします。
NEW_PDBを右クリックして状態の変更を選択する。
状態のオプション:READ WRITE
に選択して適用を実行すると、OPENになるはず。
SQL plusで状態の変更を行う方法もある。
SYSでログインして、
show pdbs
NEW_PDBがOPEN MODE:MOUNTED状態だったので、
alter pluggable database NEW_PDB open;
でOPEN MODE:READ WRITEに変更できました。
上記画像で確認できます。
PDBテーブル作成
あとは、PDBでSQL文を実行すれば、テーブル等が作成できる。
create tale
create table a_product (id number, name VARCHAR2(20), data1 VARCHAR2(30), data2 VARCHAR2(30));