PR

Oracle Database 大量のテストデータを簡単に作成する方法

スポンサーリンク
ORACLE

Oracle Databaseの性能テストをする際に、大量のテストデータが必要になる場合があると思います。

そんな時にアプリケーションを作成するのは時間がかかりますし、データを用意するのも大変です。

今回はプロシージャを使って、簡単に大量のデータを作成する方法を紹介します。

とりあえず10万件のテストデータを作成してみる

テストテーブルを作成します。

SQL> create table dekiru (
  2    no number(10)
  3  );

Table created.

テストテーブルに10万件をinsertしてみます。

SQL> begin
  2    for i in 1..100000 loop
  3      insert into dekiru values(i);
  4    end loop;
  5    commit ;
  6  end;
  7  /

PL/SQL procedure successfully completed.

insertできているか件数カウントしてみます。

SQL> select count(*) from dekiru;

  COUNT(*)
----------
    100000

10万件のランダムな文字列のテストデータを作成してみる

テストテーブルを作成します。

SQL> create table dekiru_st (
  2    no number(10),
  3    st char(10)
  4  );

Table created.

ランダムな文字列生成は、dbms_random.string プロシージャを使用します。

第一引数 ‘x’ は 大文字のアルファベット文字と数字で文字列を戻します。

第二引数 10 は戻す文字列の長さを指定します。

SQL> select dbms_random.string('x',10) from dual;

DBMS_RANDOM.STRING('X',10)
-----------------------------
A1BRN5R2EV

10万件のランダムな文字列をテストテーブルにinsertしてみます。

SQL> begin
  2    for i in 1..100000 loop
  3      insert into dekiru_st values(i,dbms_random.string('x',10));
  4    end loop;
  5    commit ;
  6  end;
  7  /

PL/SQL procedure successfully completed.

insertできているか件数カウントしてみます。

SQL> select count(*) from dekiru_st;

  COUNT(*)
----------
    100000

こんな感じで入っています。(rownumで絞ってみました)

SQL> select * from dekiru_st where rownum <=5;

        NO ST
---------- ----------
         1 KWV0T66VLU
         2 M8OITQ0S60
         3 12T0UUS502
         4 1LQ0XNLJ76
         5 SDJI74SBKT