Oracle では、ストアド プロシージャの一時テーブルは、データを一時的に保存するために使用されるテーブルです。トランザクションまたはセッションが終了すると、一時テーブル内のデータはデータベースによって自動的に消去され、一時テーブルはデータベースの存続期間に応じて使用できます。さまざまなサイクルは、トランザクション レベルの一時テーブルとセッション レベルの一時テーブルに分けられます。作成構文は、「コミット時にグローバル テンポラリ テーブルを作成し、行を保持/削除する」です。
このチュートリアルの動作環境: Windows 10 システム、Oracle バージョン 12c、Dell G3 コンピューター。
一時テーブルの構文:
create global temporary table 临时表名 on commit preserve/delete rows --preserve:SESSION级的临时表,delete:TRANSACTION级的临时表.
1. 関数: データを「一時的に」保存するために使用されます
(1) トランザクションまたはセッションが終了すると、この一時テーブルの「データ」はデータベースによって自動的に消去されます
(2) ただし、「テーブル構造」は残ります
2. カテゴリ: 'ライフサイクルの違い'
(1) トランザクションレベルの一時テーブル: コミット時に行を削除; コミット時にレコードを「削除」(デフォルト)
(2) セッションレベルの一時テーブル: コミット時に行を保持します。コミット時にレコードを「保存」し、セッション終了時にレコードを「削除」します。 ## (1) 一時テーブルの処理効率は通常のテーブルより高い
# & lt; 1 & gt; (2) 操作方法は通常のテーブルと同じです
4. 次のテストでは、一時テーブルを作成した後、情報クエリが実行されます。SESSION レベルの一時テーブル データは、SESSION 全体で最後まで存在します。そして、TRANSACTION レベルの一時テーブル データは、TRANACTION の終了後に消去されます。つまり、COMMIT/ROLLBACK または SESSION の終了により、TRANACTION 一時テーブル データが消去されます。
セッションが終了するか、ユーザーがコミットとロールバックのトランザクションを送信すると、一時テーブル内のデータは自動的にクリアされますが、一時テーブルの構造とメタデータはユーザーのデータ ディクショナリに保存されたままになります。セッションが終了するとき(ユーザーが正常に終了するか、ユーザーが異常終了するか、ORACLE インスタンスがクラッシュする)、またはトランザクションが終了すると、Oracle はこのセッションのテーブルに対して TRUNCATE ステートメントを実行して一時テーブルのデータをクリアしますが、データはクリアされません。他のセッションの一時テーブル内。一時テーブルではトリガーを使用できます。
推奨チュートリアル: 「
Oracle ビデオ チュートリアル」
以上がOracleストアドプロシージャの一時テーブルとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。