ここではORACLEデータベースで、一時テーブルを作成するSQLを紹介しています。
テーブルの作成や一覧で確認する方法は↓で紹介しています。
>>【ORACLE】テーブルを作成・変更・削除するSQL
>>【ORACLE】テーブルの一覧やサイズを確認するSQL
一時テーブルとは
一時テーブルとは、セッションやトランザクションが終了されたときにテーブル内のデータが削除される表です。
主に、1つのプログラムの処理の途中で、データを一時的に作成したいときなど、ワークテーブルとして使います。
一時テーブルに格納したデータは、格納したセッションでのみ参照可能です。他のセッションからは参照できません。
一時テーブルを作成するSQL
一時テーブルの作成はCREATE GLOBAL TEMPORARY TABLE文を使います。
一時テーブルの作成にはCREATE TABLE、CREATE ANY TABLE権限が必要です。
システム権限の付与の方法については↓で紹介していますので参考にしてください。
>>【ORACLE】システム権限を付与・取消するSQL
CREATE GLOBAL TEMPORARY TABLE文
CREATE GLOBAL TEMPORARY TABLE テーブル名(
列名 データの型 [列の制約]
[,列名 データの型 [列の制約]]
)
[ON COMMIT DELETE ROWS | ON COMMIT PRESERVE ROWS]
;
・[ON COMMIT DELETE ROWS]
トランザクションが終了したとき、テーブル内のレコードを削除します。
・[ON COMMIT PRESERVE ROWS]
セッションが終了したとき、テーブル内のレコードを削除します。
レコードの削除はDELETEではなくTRUNCATEが実行されます。
CREATE GLOBAL TEMPORARY TABLE文のサンプル
次のSQLでは、TAB1という一時テーブルをON COMMIT DELETE ROWSオプションを指定して作成しています。
CREATE GLOBAL TEMPORARY TABLE tab1(
col1 VARCHAR2(10)
,col2 NUMBER
)
ON COMMIT DELETE ROWS
;
まとめ
一時テーブルは、セッションまたはトランザクションが終了したときにデータが削除されるワークテーブルのことです。
一時テーブルはCREATE GLOBAL TEMPORARY TABLE文で作成することが出来ます。
一時テーブルの作成にはCREATE TABLE、CREATE ANY TABLE権限が必要です。
システム権限の付与の方法については↓で紹介していますので参考にしてください。
>>【ORACLE】システム権限を付与・取消するSQL