ここではOracleのテンポラリテーブル(一時表)の作成について紹介します。

テンポラリテーブルとは

テンポラリテーブル(一時表)は、セッションまたはトランザクションが終了されたときにテーブル内のデータが削除されるテーブルです。
処理の途中でデータを一時的に作成したいときなど、ワークテーブルとして使用します。


テンポラリテーブルを作成する

テンポラリテーブルの作成は、CREATE GLOBAL TEMPORARY TABLE文を使用します。

構文

CREATE GLOBAL TEMPORARY TABLE {スキーマ名}.{テーブル名}(
    {列名} {データ型} [{制約}],
    {列名} {データ型} [{制約}],
    {列名} {データ型} [{制約}]
)
[ON COMMIT DELETE ROWS] | [ON COMMIT PRESERVE ROWS];


[ON COMMIT DELETE ROWS]
 トランザクションが終了したとき、テーブル内のレコードが削除されます。デフォルト値です。
[ON COMMIT PRESERVE ROWS]
 セッションが終了したとき、テーブル内のレコードが削除されます。

以下はテンポラリテーブル「wk_emp」を作成するCREATE GLOBAL TEMPORARY TABLE文です。

CREATE GLOBAL TEMPORARY TABLE wk_emp (
     emp_no         VARCHAR2(4) NOT NULL --社員番号
    ,depart_cd      VARCHAR2(3)          --部署コード
    ,emp_name       VARCHAR2(20)         --氏名
    ,emp_sex        CHAR(1)              --性別
    ,emp_age        NUMBER(3, 0)         --年齢
    ,emp_birthday   DATE                 --生年月日
) ON COMMIT PRESERVE ROWS;


テンポラリテーブルを削除する

テンポラリテーブルの削除は、DROP TABLE文を使用します。

構文

DROP TABLE {テーブル名};


以下はテンポラリテーブル「wk_emp」を削除するDROP TABLE文です。

DROP TABLE wk_emp;


以上、Oracleのテンポラリテーブル(一時表)の作成について解説しました。