Oracle DB で一時テーブルを作る

Oracle DB では、一時テーブルを作れる。

CREATE GLOBAL TEMPORARY TABLE my_temporary_table (
  my_column_1 CHAR(10) NOT NULL,
  my_column_2 NUMBER(5, 2)
  my_column_3 DATE
) ON COMMIT PRESERVE ROWS;

こんな感じ。

例のように ON COMMIT PRESERVE ROWS とすると、COMMIT; でコミットしたあともテーブルの中身が消えずに残せる。

ON COMMIT DELETE ROWS とすると、コミット時にテーブルの中身が消える。

両方ともテーブル定義は残るが、処理のあとにテーブルデータを残さないようにしたい場合は ON COMMIT DELETE ROWS 設定を入れて使えるだろう。