Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

OracleDB

Oracle DBでサンプルスキーマを作成する手順について

投稿日:2022年5月6日 更新日:

<目次>

(1) Oracle DBでサンプルスキーマを作成する手順について
 (1-1) はじめに
 (1-2) (STEP1)ダウンロード
 (1-3) (STEP2)準備
 (1-4) (STEP3)サンプルDBスキーマのインストール

(1) Oracle DBでサンプルスキーマを作成する手順について

(1-1) はじめに

Oracle DBはインストーラを使用して導入を行う際に、「サンプルスキーマ」(サンプルデータを含んだスキーマ)を自動で作る選択肢が選べます。
 
→(参考)Linuxサーバ(CentOS6)にOracleDB11gをインストールする(その4)
もし、インストールの段階ではサンプルスキーマ導入せずに進み、後になって「やっぱりサンプルデータを投入したい」となるケースもあるかも知れません。本記事ではそのようなケースにおけるサンプルデータの投入方法についてご紹介します。
 

(1-2) (STEP1)ダウンロード

サンプルスキーマの資源はGitHubから取得可能です。
 
・①下記のURLから、ご自身のDBのバージョンに沿った資源を取得します。
 
 

(1-3) (STEP2)準備

資源自体は任意の場所に配置可能ですが、オススメとしては「$ORACLE_HOME/demo/schema」に配置すると良いです。なので、「$ORACLE_HOME/demo/schema」に配置した上で解凍(unzip)します。
 
・①DBサーバに「$ORACLE_HOME/demo/schema」のディレクトリを作成しておきます。
(図121)こんなパスのディレクトリです。

<備考>
もし存在しない場合は、「mkdir」コマンドで作成します。
(例)
$ mkdir $ORACLE_HOME/demo/
$ mkdir $ORACLE_HOME/demo/schema
・②ダウンロードした資源を任意のディレクトリにアップロードします。
以下は、TeraTermのSSH SCP機能で「/tmp」に転送する例です。
(図122)
・③「unzip」で解凍します。
$ unzip /tmp/db-sample-schemas-12.1.0.2.zip
(図123)
・④解凍したファイルを「$ORACLE_HOME/demo/schema」に移します。
$ sudo mv /tmp/db-sample-schemas-12.1.0.2/* $ORACLE_HOME/demo/schema
(図124)
(図125)移動後はこんな感じになります。
・⑤ワーキングディレクトリの設定
今回使用する資源は、どこのディレクトリでも作業できるように、ディレクトリを「”__SUB__CWD__”」というタグで表しており、この値を、ご自身の任意のディレクトリで置き換えることで、どこからでも作業できるようになっております。
 
この値の置換は下記のPerlコマンドで実施します。
$ cd $ORACLE_HOME/demo/schema
$ perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat

(図126)

(1-4) (STEP3)サンプルDBスキーマのインストール

このインストールを行うと、次のスキーマがインストールされます。それぞれのスキーマが架空の会社の「部署」の単位になっており、意味は下記の通りになります。
 
HR:人事(Human Resources)
OE:受注≒注文入力(Order Entry)
PM:製品メディア(Product Media)
IX:情報共有(Information Exchange)
SH:営業(Sales History)
BI:経営≒意思決定(Business Intelligence)
 
(注意点)始める前に必ず確認を!
これから実行するスクリプトは、最初に上記名前のスキーマをDROP(削除)してから新しく作るため、もし既に同名のスキーマがある場合は実行しないでください
 
・①「SQL*Plus」のある階層に移動して、SYSDBA権限で起動
$ cd $ORACLE_HOME/bin
(図131①)

$ ./sqlplus sys as sysdba
(図131②)

・②HRスキーマのインストール
HRスキーマのインストールは「hr_main.sql」ファイルで行います。下記のコマンドで実行します。

(構文)

SQL> @?/demo/schema/human_resources/hr_main.sql [引数①] [引数②] [引数③] [引数④] [引数⑤] [引数⑥]
(表)各引数の意味

引数① HRスキーマのパスワード
引数② HRスキーマの表領域名
(例)users
引数③ HRスキーマの一時表領域名
(例)temp
引数④ SYSユーザーのパスワード
引数⑤ ログ出力先のディレクトリ
(例)
$ORACLE_HOME/demo/schema/log/
引数⑥ 接続文字列
(例)
tk2-262-40837.vs.sakura.ne.jp:1521:orcl

(※注意)スキーマによって引数の数が異なりますので、それぞれ「xx_main.sql」を確認して、引数を適切にセットします。

(例)
SQL> @?/demo/schema/human_resources/hr_main.sql XXXX users temp XXXX $ORACLE_HOME/demo/schema/log/ tk2-262-40837.vs.sakura.ne.jp:1521/pdb1
(参考)このコマンドの処理
・既存のHRスキーマがあれば削除
・新規にHRスキーマを作成し、必要な権限を付与
・HRとして接続
・HRスキーマのオブジェクト(表、ビュー等)を作成するためのスクリプトを実行
(図132)

(結果例)
SQL> @?/demo/schema/human_resources/hr_main.sql XXXX users temp XXXX $ORACLE_HOME/demo/schema/log/
specify password for HR as parameter 1:
specify default tablespeace for HR as parameter 2:
specify temporary tablespace for HR as parameter 3:
specify password for SYS as parameter 4:
specify log path as parameter 5:
User dropped.
User created.
User altered.
User altered.
Grant succeeded.
Grant succeeded.
Connected.
Grant succeeded.
Connected.
Session altered.
Session altered.
******  Creating REGIONS table ....
Table created.
Index created.
Table altered.
******  Creating COUNTRIES table ....
Table created.
Table altered.
******  Creating LOCATIONS table ....
Table created.
Index created.
Table altered.
Sequence created.
******  Creating DEPARTMENTS table ....
Table created.
Index created.
Table altered.
Sequence created.
******  Creating JOBS table ....
Table created.
Index created.
Table altered.
******  Creating EMPLOYEES table ....
Table created.
Index created.
Table altered.
Table altered.
Sequence created.
******  Creating JOB_HISTORY table ....
Table created.
Index created.
Table altered.
******  Creating EMP_DETAILS_VIEW view ...
View created.
Commit complete.
Session altered.
******  Populating REGIONS table ....
1 row created.
1 row created.
1 row created.
1 row created.
******  Populating COUNTIRES table ....
1 row created.
~中略~
1 row created.
******  Populating LOCATIONS table ....
1 row created.
~中略~
1 row created.
******  Populating DEPARTMENTS table ....
Table altered.
1 row created.
~中略~
1 row created.
******  Populating JOBS table ....
1 row created.
~中略~
1 row created.
******  Populating EMPLOYEES table ....
1 row created.
~中略~
1 row created.
******  Populating JOB_HISTORY table ....
1 row created.
~中略~
1 row created.
Table altered.
Commit complete.
Index created.
~中略~
Index created.
Commit complete.
Procedure created.
Trigger created.
Trigger altered.
Procedure created.
Trigger created.
Commit complete.
Comment created.
~中略~
Comment created.
Commit complete.
PL/SQL procedure successfully completed.
 
あとは、他のスキーマ(OE、PM、IX、SH、BI)についても同様に処理を繰り返します。
※但し、スキーマによって引数の数が異なりますので、それぞれ「xx_main.sql」を確認して、引数を適切にセットします。
 
順番は下記の通りです。
$ORACLE_HOME/demo/schema/human_resources/hr_main.sql(引数:6個)
↓
$ORACLE_HOME/demo/schema/order_entry/oe_main.sql(引数:9個)
↓
$ORACLE_HOME/demo/schema/product_media/pm_main.sql
↓
$ORACLE_HOME/demo/schema/info_exchange/ix_main.sql(引数:6個)
↓
$ORACLE_HOME/demo/schema/sales_history/sh_main.sql(引数:8個)
・OE用
@?/demo/schema/order_entry/oe_main.sql XXX users temp XXX XXX $ORACLE_HOME/demo/schema/order_entry/ $ORACLE_HOME/demo/schema/log/ 1.0
・PM用
@?/demo/schema/product_media/pm_main.sql XXX  users temp XXX XXX $ORACLE_HOME/demo/schema/product_media/ $ORACLE_HOME/demo/schema/log/ $ORACLE_HOME/demo/schema/
・IX用
@?/demo/schema/info_exchange/ix_main.sql XXXX users temp XXXX $ORACLE_HOME/demo/schema/log/ 1.0
・SH用
@?/demo/schema/sales_history/sh_main.sql XXXX users temp XXXX $ORACLE_HOME/demo/schema/sales_history/ $ORACLE_HOME/demo/schema/log/ 3
(備忘)11gのための応急処置

Adsense審査用広告コード


Adsense審査用広告コード


-OracleDB

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

ODBCドライバーとは?Windowsでの設定確認方法+OracleやSQLServerの例も併せて紹介

<目次> (1) ODBCドライバとは?ODBCドライバーやJDBCとの違いについて  (1-1) ODBCドライバとは?  (1-2) ODBCドライバマネージャーとは?  (1-3) Window …

Linuxサーバ(CentOS6)にOracleDB11gをインストールする(その1)

掲題の通り、LinuxにOracleDB(11g)をインストールする方法について書きます。 ■目次 (0)前提条件 (1)インストール要件の確認 (2)ユーザ/グループ作成 (3)Oracle DBソ …

OracleDBのexpdp/impdpで発生したエラー対処[ORA-39002,ORA-39070,ORA-39087]&[ORA-39083,ORA-01658]

(4) エラー対応  (4-1) エラー1:ORA-39002,ORA-39070,ORA-39087   (4-1-1) 発生状況・エラーメッセージ   (4-1-2) 原因   (4-1-3) 対 …

ORA-00257エラーの対応(“archiver error. Connect Internal only. until freed”)

ORA-00257エラーの対応法についてです。 (“archiver error. Connect Internal only, until freed”) (0) 目次 (1 …

Oracleデータベースのバックアップをimpdpでリストアする方法

※本記事は「Oracleデータベースのバックアップをexpdpで取得する方法」の続きとなる記事です。 (0)目次&概説 (3) インポート手順(impdp)  (3-1) (事前作業)ロールの付与   …

  • English (United States)
  • 日本語
Top