[Oracle] サンプルユーザ(scott)と表(emp)を作成する

Oracle

SQLの動作を試したい時などに、サンプルとなるユーザやデータを含む表が欲しい時があります。
Oracle Databaseではスクリプト(utlsampl.sql)が用意されていますので、
こちらのスクリプトを実行することで、サンプルユーザ(scott)とデータを含む表を作成してくれます。

スクリプト(utlsampl.sql)

スクリプト(utlsampl.sql)は、ORACLE_HOME配下のrdbms/adminディレクトリに存在します。

$ cd $ORACLE_HOME/rdbms/admin
$ ls -l utlsampl.sql
-rw-r--r-- 1 oracle oinstall 3978  8月 11  2021 utlsampl.sql

スクリプトの処理内容としては以下となります。

  1. scottユーザ(スキーマ)を削除(drop)
  2. scottユーザ作成(パスワードはtiger)
  3. scottユーザにDEPT表、EMP表、BONUS表、SALGRADE表を作成して、
    各表にサンプルデータをINTERT
  4. 最後にCOMMITを実行してEXITする

スクリプト編集

デフォルトでは接続先が正しくないため、スクリプトの一部を修正します。
まずは変更前のスクリプトをバックアップしておきます。

$ cd $ORACLE_HOME/rdbms/admin
$ cp utlsampl.sql utlsampl.sql.orig
$ ls -l utlsampl.sql*
-rw-r--r-- 1 oracle oinstall 3978  8月 11  2021 utlsampl.sql
-rw-r--r-- 1 oracle oinstall 3978 12月 20 10:37 utlsampl.sql.orig

45行目のCONNECT部分の記載を変更します。
マルチテナント構成の場合は、CDBにローカルユーザを作成することができませんので、
PDBに接続させる必要があります。

PDBへの接続については、こちらをご参照ください。

変更前
CONNECT SCOTT/tiger
変更
CONNECT SCOTT/tiger@<接続識別子>

スクリプト実行

SQL*Plusから、サンプルユーザを作成したいPDBに、SYSユーザで接続されていることを確認します。

$ sqlplus sys/<パスワード>@<接続識別子> as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on 金 12月 20 10:22:35 2024
Version 19.14.0.0.0

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



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0
に接続されました。
SQL> show con_name

CON_NAME
------------------------------
PDB1

SQL> show user
ユーザーは"SYS"です。

スクリプト(utlsampl.sql)を実行します。
正常に実行された場合はSQL*Plusが終了します。

SQL> @?/rdbms/admin/utlsampl
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0との接続が切断されました。
$

実行結果確認

再度SQL*PlusからscottユーザでPDBに接続します。

$ sqlplus scott/tiger@<接続識別子>

SQL*Plus: Release 19.0.0.0.0 - Production on 金 12月 20 10:22:35 2024
Version 19.14.0.0.0

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



Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.0.0
に接続されました。
SQL> show con_name

CON_NAME
------------------------------
PDB1

SQL> show user
ユーザーは"SCOTT"です。
SQL>

作成された表を確認します。

SQL> col tname format a20
SQL> col tabtype format a20
SQL> select * from tab;

TNAME                TABTYPE               CLUSTERID
-------------------- -------------------- ----------
DEPT                 TABLE
EMP                  TABLE
BONUS                TABLE
SALGRADE             TABLE

SQL> select * from emp;

     EMPNO ENAME                          JOB                                MGR HIREDATE        SAL       COMM     DEPTNO
---------- ------------------------------ --------------------------- ---------- -------- ---------- ---------- ----------
      7369 SMITH                          CLERK                             7902 80-12-17        800                    20
      7499 ALLEN                          SALESMAN                          7698 81-02-20       1600        300         30
      7521 WARD                           SALESMAN                          7698 81-02-22       1250        500         30
      7566 JONES                          MANAGER                           7839 81-04-02       2975                    20
      7654 MARTIN                         SALESMAN                          7698 81-09-28       1250       1400         30
      7698 BLAKE                          MANAGER                           7839 81-05-01       2850                    30
      7782 CLARK                          MANAGER                           7839 81-06-09       2450                    10
      7839 KING                           PRESIDENT                              81-11-17       5000                    10
      7844 TURNER                         SALESMAN                          7698 81-09-08       1500          0         30
      7900 JAMES                          CLERK                             7698 81-12-03        950                    30
      7902 FORD                           ANALYST                           7566 81-12-03       3000                    20
      7934 MILLER                         CLERK                             7782 82-01-23       1300                    10

12行が選択されました。

まとめ

サンプルユーザ(scott)の作り方を解説しました。
ちょっとした動作確認のためのデータが必要な場合に使えるスクリプトになっています。

絵で見てわかるOracleの仕組み 新装版
Oracleの基礎を学びたいならまずはこの本から。
バックグラウンドプロセスからREDOの使われ方などについても詳細に解説されています。

Amazon.co.jp

プログラミングスクールをまとめました。ぜひ参考にしてみてください。

コメント

タイトルとURLをコピーしました