Loading [MathJax]/extensions/tex2jax.js

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

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

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

(構文)

  1. 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」を確認して、引数を適切にセットします。

(例)
  1. 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)

(結果例)
  1. SQL> @?/demo/schema/human_resources/hr_main.sql XXXX users temp XXXX $ORACLE_HOME/demo/schema/log/
  2. specify password for HR as parameter 1:
  3. specify default tablespeace for HR as parameter 2:
  4. specify temporary tablespace for HR as parameter 3:
  5. specify password for SYS as parameter 4:
  6. specify log path as parameter 5:
  7. User dropped.
  8. User created.
  9. User altered.
  10. User altered.
  11. Grant succeeded.
  12. Grant succeeded.
  13. Connected.
  14. Grant succeeded.
  15. Connected.
  16. Session altered.
  17. Session altered.
  18. ****** Creating REGIONS table ....
  19. Table created.
  20. Index created.
  21. Table altered.
  22. ****** Creating COUNTRIES table ....
  23. Table created.
  24. Table altered.
  25. ****** Creating LOCATIONS table ....
  26. Table created.
  27. Index created.
  28. Table altered.
  29. Sequence created.
  30. ****** Creating DEPARTMENTS table ....
  31. Table created.
  32. Index created.
  33. Table altered.
  34. Sequence created.
  35. ****** Creating JOBS table ....
  36. Table created.
  37. Index created.
  38. Table altered.
  39. ****** Creating EMPLOYEES table ....
  40. Table created.
  41. Index created.
  42. Table altered.
  43. Table altered.
  44. Sequence created.
  45. ****** Creating JOB_HISTORY table ....
  46. Table created.
  47. Index created.
  48. Table altered.
  49. ****** Creating EMP_DETAILS_VIEW view ...
  50. View created.
  51. Commit complete.
  52. Session altered.
  53. ****** Populating REGIONS table ....
  54. 1 row created.
  55. 1 row created.
  56. 1 row created.
  57. 1 row created.
  58. ****** Populating COUNTIRES table ....
  59. 1 row created.
  60. ~中略~
  61. 1 row created.
  62. ****** Populating LOCATIONS table ....
  63. 1 row created.
  64. ~中略~
  65. 1 row created.
  66. ****** Populating DEPARTMENTS table ....
  67. Table altered.
  68. 1 row created.
  69. ~中略~
  70. 1 row created.
  71. ****** Populating JOBS table ....
  72. 1 row created.
  73. ~中略~
  74. 1 row created.
  75. ****** Populating EMPLOYEES table ....
  76. 1 row created.
  77. ~中略~
  78. 1 row created.
  79. ****** Populating JOB_HISTORY table ....
  80. 1 row created.
  81. ~中略~
  82. 1 row created.
  83. Table altered.
  84. Commit complete.
  85. Index created.
  86. ~中略~
  87. Index created.
  88. Commit complete.
  89. Procedure created.
  90. Trigger created.
  91. Trigger altered.
  92. Procedure created.
  93. Trigger created.
  94. Commit complete.
  95. Comment created.
  96. ~中略~
  97. Comment created.
  98. Commit complete.
  99. PL/SQL procedure successfully completed.
 
あとは、他のスキーマ(OE、PM、IX、SH、BI)についても同様に処理を繰り返します。
※但し、スキーマによって引数の数が異なりますので、それぞれ「xx_main.sql」を確認して、引数を適切にセットします。
 
順番は下記の通りです。
  1. $ORACLE_HOME/demo/schema/human_resources/hr_main.sql(引数:6個)
  2. $ORACLE_HOME/demo/schema/order_entry/oe_main.sql(引数:9個)
  3. $ORACLE_HOME/demo/schema/product_media/pm_main.sql
  4. $ORACLE_HOME/demo/schema/info_exchange/ix_main.sql(引数:6個)
  5. $ORACLE_HOME/demo/schema/sales_history/sh_main.sql(引数:8個)
・OE用
  1. @?/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用
  1. @?/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用
  1. @?/demo/schema/info_exchange/ix_main.sql XXXX users temp XXXX $ORACLE_HOME/demo/schema/log/ 1.0
・SH用
  1. @?/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

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

関連記事

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

目次 (4)インストーラの進行  (4-1)セキュリティUpdate構成  (4-2)インストールオプション選択  (4-3)Gridインストールオプション  (4-4)製品言語の選択  (4-5)デ …

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

掲題の通り、LinuxにOracleDB(11g)をインストールする方法について書きます。 「(その3)」の続編記事です。 https://rainbow-engine.com/2017/05/05/ …

Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法

<目次> (1) Tomcatを使ったフォーム認証でユーザ情報をデータベース管理する方法  (1-1) 前提条件  (1-2) STEP1:context.xmlにコネクションプールを設定  (1-3 …

Oracleデータベースのバックアップをexpdpで取得する方法

(0)目次&概説 (1) expdp/impdpについて  (1-1) expdp/impdpの概要  (1-2) expdp/impdpの配置場所や転送方法 (2) エクスポート手順(expdp) …

ORA-28000エラーの解除方法と発生原因について

<目次> (1) 記事の目的  (1-1) エラー概要  (1-2) エラー原因  (1-3) エラー対策 (1) 記事の目的 (1-1) エラー概要 SQLDeveloperを使ってOracleDB …

  • English (United States)
  • 日本語
S