OceanBaseデータベースのOracleモードでは、一時テーブルはトランザクションまたはセッション期間中に存在するデータのみを保存します。
グローバル一時テーブルの概要
グローバル一時テーブルは一定期間のデータを保存するために使用されます。ここでの一定期間とは、トランザクションのライフサイクルまたはセッションのライフサイクルを指す場合があります。
グローバル一時テーブルの列定義はすべてのセッションから可視可能です。ただし、グローバル一時テーブル内のデータはセッション固有であり、現在のセッションは自分自身のデータのみを見ることができ、変更することもできます。
例えば、学生の授業選択シナリオでは、一時テーブルを使用して選択した授業内容を一時的に保存します。セッション期間中、選択した授業データはプライベートです。学生が選択授業リストを確認すると、アプリケーションは一時テーブルから通常のテーブルへ選択授業情報を移動します。セッション終了時、データベースはグローバル一時テーブル内のデータを自動的に削除します。
グローバル一時テーブルの作成方法
ユーザーは CREATE GLOBAL TEMPORARY TABLE ステートメントを使用してグローバル一時テーブルを作成でき、ON COMMIT 句を使用してトランザクション一時テーブルかセッション一時テーブルかを制御できます。具体的には以下のとおりです:
ON COMMIT DELETE ROWS:トランザクションレベルの一時テーブルで、コミット時にデータを削除します。ON COMMIT PRESERVE ROWS:セッションレベルの一時テーブルで、セッション終了時にデータを削除します。
グローバル一時テーブルにはインデックスを作成できますが、グローバル一時テーブルのインデックステーブルのデータも一時的であり、データもセッション固有です。
一時外部テーブル
一時外部テーブルとは、クエリ処理中に一時的に作成される外部テーブルであり、データの読み取りに使用されます。クエリ終了後、このテーブルは自動的に削除されます。
OceanBaseデータベースはV4.3.5 BP1バージョンから、SELECT URL および LOAD DATA ステートメントを使用して外部テーブルデータを読み取るまたはインポートする機能をサポートしています。