Oracle Database 一時テーブルを作成する

Oracle Database 一時テーブルを作成する

Oracle Databaseで、一時テーブルを作成する手順を記述してます。「CREATE GLOBAL TEMPORARY TABLE」で可能です。ここでは、実際に実行した結果を画像で掲載してます。

環境

  • OS windows11 home
  • Oracle Database 21c Express Edition

手順

一時テーブルを作成するには、「CREATE GLOBAL TEMPORARY TABLE」を使用します。

# セッション終了でデータを削除
CREATE GLOBAL TEMPORARY TABLE テーブル名
(
  列名 データ型,
  列名 データ型,
  列名 データ型,
   .
   .  

)ON COMMIT PRESERVE ROWS;

# トランザクション終了でデータを削除
CREATE GLOBAL TEMPORARY TABLE テーブル名
(
  列名 データ型,
  列名 データ型,
  列名 データ型,
   .
   .  

)ON COMMIT PRESERVE ROWS;

実際に、一時テーブル「TESTTMP」を作成してみます。

CREATE GLOBAL TEMPORARY TABLE TESTTMP
(
  id NUMBER(1) PRIMARY KEY,
  name VARCHAR2(50)
)ON COMMIT PRESERVE ROWS;

実行結果

これで一時テーブル「TESTTMP」が作成されました。

一度、SQL*Plusからログインして、一時テーブルにデータを作成してみます。

> sqlplus testuser/pwd@SAMPLEPDB

SQL> INSERT INTO TESTTMP VALUES (1,'hoge');

1行が作成されました。

SQL> SELECT * FROM TESTTMP;

        ID
----------
NAME
--------------------------------------------------------------------------------
         1
hoge

データが作成されたことが確認できます。

一度、exitしてセッションを抜けてから、再度ログインしてみます。

SQL> exit
Oracle Database 21c Express Edition Release 21.0.0.0.0 - Production
Version 21.3.0.0.0との接続が切断されました。

> sqlplus testuser/pwd@SAMPLEPDB

SQL> SELECT * FROM TESTTMP;

レコードが選択されませんでした。

一時テーブルに対して、SELECTを実行するとセッションが切れるとデータが削除されることが確認できます。