Oracle Database 12c Release2 でPDB、テーブルを作成する

2019年8月16日Oracle,開発

おはようございます。

昨日に引き続き、
Oracle 12c に PDB 、テーブルを作成していきたいと思います。

インストールは昨日の記事を参考にしてください。

Oracle Database 12c Release 2 を Windows10 にインストールする

スポンサーリンク

PDBの作成

PDB(プラガブル・データベース)を作成します。

データファイル用のディレクトリを作成

PDBのデータファイルを格納するディレクトリを事前に作成します。

今回は、「SAMPLE」というPDBを作成するため、次の場所にディレクトリを作成します。

C:\app\OracleUser\oradata\orcl\sample

CDBに接続する

CDB(マルチテナント・コンテナ・データベース)に接続します。

コマンドプロンプトを起動し、次のコマンドを実行してください。

sqlplus sys/sys@ORCL as sysdba
CDBへの接続

認証エラーが発生した場合は、インストール時に設定したユーザー/パスワードを確認してください。

TNSエラーが発生した場合は、サービスが起動していることを確認してください。

起動しているのにエラーが出る場合は Google さんに聞いてみてください。

PDB作成コマンドを実行

続けて次のコマンドを実行します。

create pluggable database sample admin user sample_usr identified by sample_usr file_name_convert = ('C:\app\OracleUser\oradata\orcl\pdbseed\', 'C:\app\OracleUser\oradata\orcl\sample\');

pdbseed というテンプレートを利用して、PDBを作成するコマンドです。

PDBの作成

「プラガブル・データベースが作成されました」と表示されます。

エラーが発生する場合、データファイル用ディレクトリの有無や権限などを確認してみてください。

PDBの起動

PDBは作成後、およびCDB起動後デフォルトで「MOUTED」状態となっています。
このままだと操作できませんので起動しましょう。

alter pluggable database SAMPLE open;
PDBの起動

また、状態を確認する場合は次のコマンドを実行します。

show pdbs;

PDBに直接接続する設定をする

PDBに直接、簡単に接続するためにTNSを追加します。

デフォルトでは次の場所にTNSNAMESファイルが格納されているので、次の情報を追記。

C:\app\OracleUser\product\12.2.0\dbhome_1\network\admin\tnsnames.ora

SAMPLE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = sample.doraxdora.co.jp)
    )
  )

PDBの自動起動設定

PDBを自動で起動するように設定します。

PDBに sysdba として接続して次のコマンドを実行します。

sqlplus sys/sys@SAMPLE as sysdba
alter pluggable database SAMPLE save state;
PDBの自動起動設定

ユーザー権限の設定

作成した「sample_usr」の権限を設定します。

ひとまずテスト用なので全権を付与。

sqlplus sys/sys@SAMPLE as sysdba
GRANT ALL PRIVILEGES TO sample_usr;
権限の付与

以上でPDBの作成・設定はひとまず完了です。

テーブルの作成

続いてテーブルの作成をおこないます。

PDBに接続して次のコマンドを実行。

CREATE TABLE MSTKIND (
	KIND_CD CHAR(2) NOT NULL
	, KIND_NAME VARCHAR2(40)
	, PRIMARY KEY (KIND_CD)
);

CREATE TABLE TBLCAT (
	NO NUMBER(2) NOT NULL
	, NAME VARCHAR2(20) NOT NULL
	, SEX CHAR(3) NOT NULL
	, AGE NUMBER(1) DEFAULT 0 NOT NULL
	, KIND_CD CHAR(2) DEFAULT '00' NOT NULL
	, FAVORITE VARCHAR2(40)
	, PRIMARY KEY (NO)
);
テーブル作成

エラーが発生しなければOKです。

データ追加

続けて作成したテーブルにデータを追加します。

INSERT INTO MSTKIND VALUES ('01', 'キジトラ');
INSERT INTO MSTKIND VALUES ('02', '長毛種(不明)');
INSERT INTO MSTKIND VALUES ('03', 'ミケ(っぽい)');
INSERT INTO MSTKIND VALUES ('04', 'サビ');
INSERT INTO MSTKIND VALUES ('09', 'その他');
INSERT INTO TBLCAT VALUES('1','そら','♂','6','01','犬の人形');
INSERT INTO TBLCAT VALUES('2','りく','♂','5','02','人間');
INSERT INTO TBLCAT VALUES('3','うみ','♀','4','03','高級ウェットフード');
INSERT INTO TBLCAT VALUES('4','こうめ','♀','2','04','横取りフード');

データ追加

エラーが発生しなければOKです。

データ抽出

PDBに接続して次のコマンドを実行します。

SET PAGESIZE 10000
SET LINESIZE 10000
SELECT * FROM MSTKIND;
SELECT * FROM TBLCAT;
検索結果

まとめ

ひとまず、今まで(11g以前)通りの感じでテーブルの操作ができました。

そのうち時間が出来たらC#やJavaなどから接続するのを試してみようと思います。

何かのお役に立てれば。

ではでは。

 

スポンサーリンク


関連するコンテンツ

2019年8月16日Oracle,開発Oracle,RDBMS

Posted by doradora