【Oracle XE】表領域作成から、ユーザー作成、テーブル作成までの手順

  • 投稿 : 2019-10-30

Oracle DB 環境構築

無料で利用できる・Oracle Database Express Edition | Oracle 日本・リソース制限がかかっている・サポートはなし・商用利用可だと思い

Plane Note

Windows10に環境を構築したので、この記事もWindows10で確認しました。他のOSでも、やり方は、ほぼ同じだと思います。

Oracle Database XE 18c ユーザー(スキーマ)とテーブルの作成 - Symfoware

手順などは、上記のブログ記事を参考にしました。

SYSユーザーでログイン

oracle-xe-table01.png
sqlplus sys/パスワード as sysdba

SYSユーザーを使用した場合は、ユーザー名の後にAS SYSDBAを含める必要があります。
SQL*Plusの起動およびデータベースへの接続

コマンドプロンプト(又は、PowerShell)から、上記コマンドを実行して、SQL*Plusを立ち上げ、sysユーザーでログインします。

PDBへ接続を変更

alter session set container = XEPDB1;

デフォルトで「XEPDB1」というPDBが作成されているはずなので、こちらに切り替えます。

表領域作成

oracle-xe-table02.png

テーブルスペース:TESTSPACE
テンポラリスペース:TESTTEMP

上記の名前で、テーブルスペース、テンポラリースペースを作成します。

###スペース作成
CREATE TABLESPACE TESTSPACE
DATAFILE 'c:\usr\lib\oracle\xe\TEST.dbf' SIZE 100M
SEGMENT SPACE MANAGEMENT AUTO;
###テンポラリスペース作成
CREATE TEMPORARY TABLESPACE TESTTEMP
TEMPFILE 'c:\usr\lib\oracle\xe\TESTTEMP.dbf' SIZE 100M
AUTOEXTEND ON;

※Windows以外の人は、以下の部分を各OSに沿った書き方に変更してください。
'c:\usr\lib\oracle\xe\TEST.dbf'
'c:\usr\lib\oracle\xe\TESTTEMP.dbf'

ユーザーの作成

oracle-xe-table03.png

ユーザー:testuser

上記の名前のユーザーを作成します。

###ユーザー作成
CREATE USER testuser
identified by パスワード
default tablespace TESTSPACE
temporary tablespace TESTTEMP;

※パスワードの部分を、本来のパスワードに置き換えてください。

ユーザー作成時に、パスワード以外に、
デフォルトのテーブルスペースにTESTSPACE、
テンポラリースペースに、TESTTEMP
を指定します。

###権限付与
grant connect to testuser;
grant resource to testuser;
grant dba to testuser;

認可: 権限、ロール、プロファイルおよびリソースの制限

適当に上記の権限を与えましたが、ちゃんと考えたほうが良いかも。

※補足
ユーザー作成時に「ORA-65096: 共通ユーザーまたはロール名が無効です」なる場合は、

alter session set container = XEPDB1;

を実行してください。コンテナ・データベース(CDB)上にユーザーは作成できないのでエラーになってます。

作成したユーザーで、ログイン&作業

oracle-xe-table04.png
sqlplus testuser/パスワード@//localhost:1521/XEPDB1

パスワードの部分を、ユーザーを作成した時に登録したパスワードに置き換えてください。

テーブル作成

oracle-xe-table05.png

テーブル:sample
カラム:id :int
val :varchar(100)

上記のテーブルを作成します。

CREATE TABLE sample (
id int not null,
val varchar(100) not null
);

CREATE TABLE文で作成できます。

INSERT INTO sample (id, val) VALUES (1, '登録テスト');
SELECT * FROM sample;

実際にデータを追加(INSERT)して、SELECTで登録できてるかどうかを確認します。

スポンサーリンク