Oracle Database Sample Schemasをインストールしてみた

はじめに
----
Oracle Databaseにはトレーニングやデモに使用できるサンプル・スキーマが提供されています。今回はOCIのBase Database Service（BaseDB）にサンプル・スキーマの最新版であるOracle Database Sample Schemas 23cをインストールしてみました。

参考記事：
https://qiita.com/neko_the_shadow/items/16135d324dea53edc9c9

## 環境情報
    ・データベース・サービス：Base Database Service（BaseDB）
    ・データベース・バージョン：Oracle Database 19c(19.24.0.0.0) 
    ・エディション：Enterprise Edition High Performance 
    ・サンプルデータのバージョン：Oracle Database Sample Schemas 23c(v23.3)

Oracle Database Sample Schemasについて
---
Oracle Database Sample Schemasでは以下の6種類のサンプルスキーマが提供されています。それぞれのスキーマの概要はマニュアルに記載がありますが、archivedとなっているものは定期的にメンテナンスがされていないものです。
    
    ・HR: Human Resources 
    ・CO: Customer Orders 
    ・SH: Sales History
    ・OE: Order Entry (archived)
    ・PM: Product Media (archived)
    
サンプルスキーマのマニュアルはこちら

https://docs.oracle.com/cd/F82042_01/comsc/introduction-to-sample-schemas.html#GUID-844E92D8-A4C8-4522-8AF5-761D4BE99200

手順
----
サンプルスキーマはGitHubからzipファイルをダウンロードして、いくつかの操作をするだけで利用できます。操作は全てOracleユーザーで行います。

### スクリプトのインストール
Oracle Database Sample Schemas 23cのGitHubページから最新版zipファイルをダウンロードし、解凍します。

https://github.com/oracle-samples/db-sample-schemas.git

![スクリーンショット 2024-08-15 152324.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3489148/5849c962-fbf9-d1e5-43a6-9fc0bccc7b9f.png)

インストールと展開が完了すると、各スキーマのディレクトリにアクセスできるようになります。各ディレクトリにはスキーマをインストールするためのPL/SQLなどが入っています。
```
[oracle@momo db-sample-schemas-23.3]$ ls
customer_orders  LICENSE.txt  product_media  README.txt     SECURITY.md
human_resources  order_entry  README.md      sales_history
```

### 表領域の作成
今回はHRスキーマをインストールするので、SQL*Plusを使ってsystemユーザーでPDBに接続しHRスキーマを格納するための表領域を作成していきます。操作には表領域を作成する権限が必要です。
- 表領域名：HR
```
SQL> create tablespace HR datafile '+DATA' size 100m ;

Tablespace created.

SQL> select tablespace_name,file_name,bytes/1024/1024 MB from dba_data_files;

TABLESPACE_NAME      FILE_NAME                                                                                MB
-------------------- -------------------------------------------------------------------------------- ----------
SYSTEM               +DATA/DB0815_4WC_KIX/1FB25D2ADEEA4CD2E063D500000A1004/DATAFILE/system.272.117704        450
                     3711

SYSAUX               +DATA/DB0815_4WC_KIX/1FB25D2ADEEA4CD2E063D500000A1004/DATAFILE/sysaux.270.117704        410
                     3721

UNDOTBS1             +DATA/DB0815_4WC_KIX/1FB25D2ADEEA4CD2E063D500000A1004/DATAFILE/undotbs1.269.1177         50
                     043729

USERS                +DATA/DB0815_4WC_KIX/1FB25D2ADEEA4CD2E063D500000A1004/DATAFILE/users.273.1177043          5
                     841

TABLESPACE_NAME      FILE_NAME                                                                                MB
-------------------- -------------------------------------------------------------------------------- ----------

HR                   +DATA/DB0815_4WC_KIX/1FB25D2ADEEA4CD2E063D500000A1004/DATAFILE/hr.274.1177051495        100

```
HR表領域の作成されたことを確認できたら、SQL*Plusから出てスクリプトを流す準備をしていきます。

### スクリプトの実行
HRスキーマを作成するスクリプトを実行します。human_resourcesディレクトリに移動して、systemユーザーでPDBに接続します。(最新版ではSYS/SYSTEMユーザーでなくても実行可能になったようです)

BaseDBの場合、PDBの詳細画面の「PDB接続」から接続文字列を確認することが出来るので、これをそのまま活用します。
![スクリーンショット 2024-08-15 155817.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3489148/d067c502-4d62-736c-eb45-06385865de9d.png)

簡易接続の接続文字列のコピーをクリックして、＠以降に貼り付けます。
`$ sqlplus <スキーマ名>/<パスワード>@<コピーした接続文字列>`

```
[oracle@momo db-sample-schemas-23.3]$ cd human_resources/ -- HRスキーマのディレクトリに移動
[oracle@momo human_resources]$ sqlplus  system/<パスワード>@<コピーした接続文字列>　--systemユーザーとしてPDBに接続

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Aug 15 07:05:23 2024
Version 19.24.0.0.0

Copyright (c) 1982, 2024, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.24.0.0.0

SQL> sho user -- ユーザーの確認
USER is "SYSTEM"
```
次にスキーマを作成するスクリプト、hr_install.sqlを実行します。
`＠スクリプト名`で実行可能です。
```
SQL> @hr_install.sql

Thank you for installing the Oracle Human Resources Sample Schema.
This installation script will automatically exit your database session
at the end of the installation or if any error is encountered.
The entire installation will be logged into the 'hr_install.log' log file.

Enter a password for the user HR:


Enter a tablespace for HR [USERS]: HR
Do you want to overwrite the schema, if it already exists? [YES|no]: yes
```
HRユーザーのパスワードとHRスキーマ用の表領域を選択し、上書きの有無を入力します。
```
The installation of the sample schema is now finished.
Please check the installation verification output above.

You will now be disconnected from the database.

Thank you for using Oracle Database!

Disconnected from Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
[oracle@momo human_resources]$
```
インストールが正常に実行されると、メッセージが表示されて接続が切断されます。

これでOracle Database Sample Schemasのインストールが完了し、サンプルデータを使えるようになりました。

Oracle Database Sample Schemas 23についてはこちらのブログ記事でもご紹介しています。

**Oracle Databaseのためのサンプルデータ**

https://blogs.oracle.com/oracle4engineer/post/ja-sample-data-for-oracle-database