
Windows環境でOracle12cを使う! ~環境構築編~
目次
前回のブログで、Oracle12cをWindows環境にインストールをおこないました。
Oracle12cではプラガブル・データベース(以下PDB)などの新しい概念を知る必要がありますが、
新しい機能や細かい仕組みを理解するためにも、まずは動くようにしましょう!!
ということで、今回はテーブル作成やデータの取得までに必要な手順をご説明致します。
環境情報
今回、実施した環境は以下のとおりです。
OS | Windows 8.1 |
Oracle バージョン | 12c |
Oracle エディション | Enterprise Edition |
実施手順
- Oracle起動状態の確認
- tnsnames.oraの修正
- PDBのオープン
- ユーザーの作成
- PDBORCLに接続
- テーブル作成、データの登録、データの取得
Oracle起動状態の確認
まずはOracleのサービスが起動していることを確認します。
コントロールパネルの管理ツールからサービスを起動します。
以下のようにOracleServiceとTNSListenerが実行中となっている事を確認してください。
tnsnames.oraの修正
12c以前でも必要な作業ですが、tnsnames.oraに接続情報を追加します。
tnsnames.oraはデフォルト設定の場合、下記に置いてあります。
C:\app\ora\product\12.1.0\dbhome_1\NETWORK\ADMIN
インストール時に設定したPDB名などによりSERVICE_NAME等が異なりますが
PDB名がPDBORCLの場合の記述は以下のようになります。
PDBORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = PDBORCL) ) )
PDBのオープン
PDBを使用する為にはPDBがオープンしている必要があります。
まずはsysdba権限でログインし、下記コマンドでPDBの状態を確認します。
select name, open_mode from v$pdbs;
以下のようにPDBがオープンしていない場合は、MOUNTEDと表示されます。

今回はPDBORCLというPDBを使用します。
下記コマンドでPDBORCLをオープンします。
alter session set container = PDBORCL;
以下のようにREAD WRITEと表示されればオープンされている状態です。
正常にPDBORCLに接続できる状態となっています。

PDBがオープンしていない場合、接続しようとすると下記の様なエラーが発生します。
原因が推測しづらいメッセージとなっているので注意してください。
※ORA-01033:Oracleの初期化またはシャットダウン中です。

ユーザーの作成
次にPDBORCLに接続する為の、ユーザーを作成します。
まず接続先をPDBORCLに変更してからCREATE USERを実行します。
また、権限の付与と表領域usersに対する使用用容量の制限値 (QUOTA) も変更します。
-- 接続先の変更 ALTER SESSION SET CONTAINER = PDBORCL; -- testUserの作成 CREATE USER testUser IDENTIFIED BY "password" DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; -- testUserに権限を付与 GRANT CONNECT TO testUser; GRANT CREATE TABLE TO testUser; -- testUserの表領域usersに対する使用用容量の制限値 (QUOTA) を変更 ALTER USER testUser QUOTA UNLIMITED ON users;
実行結果は以下のようになります。

テーブルの作成、データの登録、データの取得
最後に、作成したユーザーでPDBORCLに接続し、テーブルの作成、データの登録、データの取得をします。
-- PDBORCLに接続 sqlplus testUser/password@PDBORCL -- テーブルの作成 CREATE TABLE test_tbl ( id NUMBER , name VARCHAR2(10) ); -- データの登録 INSERT INTO test_tbl VALUES(1, 'abc'); -- データの取得 SELECT * FROM test_tbl;
実行結果は下記のようになります。

まとめ
実際に仕事などで使用する場合、権限の設定などより細かい設定をする必要があるかと思います。
しかし、新しい機能などを理解するためには、まずは動かしてみることが大事です。
ぜひ一度お試し頂ければと思います。

