0

次の DDL を使用してグローバル一時テーブルを作成しました。

CREATE GLOBAL TEMPORARY TABLE MY_TEMP_TABLE 
(
  column1  NUMBER,
  column2  NUMBER
)  ON COMMIT PRESERVE ROWS 

次に、いくつかのデータを入れて、問題なく読み取ることができます。

SQL クライアント セッションを閉じて再度開いたところ、テーブルはまだ存在していますが、データがありません。

グローバル一時テーブルは、通常の永続テーブルと同じようにセッション間で保持されますが、その中のデータは、データが取り込まれたセッションの間だけ存続するという私の観察は正しいですか?

ありがとう

4

1 に答える 1

2

正しい。

グローバル一時テーブルは、他のデータベース オブジェクトと同様に永久に存在します。他のデータベース オブジェクトと同様に、(実行時ではなく) アプリケーションをインストールするときに作成されます。

を指定するON COMMIT PRESERVE ROWSと、データはセッションの存続期間中保持されます (データを挿入したセッションにのみ表示されます)。を指定するON COMMIT DELETE ROWSと、データはトランザクションの存続期間中のみ保持されます (データを挿入したトランザクションにのみ表示されます)。

于 2012-11-09T16:16:06.917 に答える