1. ホーム
  2. データベース
  3. 神託

ORCALテンポラリーテーブルの作成と削除

2022-01-07 17:59:03

I.Orcal一時テーブルのカテゴリ

1. セッションレベルのテンポラリテーブル

  • 1). セッションを保存する Session セッションデータの
  • 2). 一時的なテーブルデータは、セッションが終了すると自動的にクリアされます。また、テーブル構造とメタデータはユーザーデータ辞書に保存される。

要約すると セッションレベルの一時テーブルとは、一時テーブルのデータがセッションの間だけ存在し、ユーザーがセッションの終了時にOracleによって自動的にクリアされるものです。

2. トランザクションレベルの一時テーブル

  • 1). トランザクションに必要なデータを保存する。
  • 2). トランザクションがコミットまたはロールバックされると、一時的なテーブルデータは自動的にクリアされる。また、テーブル構造とメタデータはユーザーデータ辞書に保存される。

要約すると トランザクションレベルの一時テーブルとは、一時テーブルのデータがトランザクションの存続期間のみ存在し、トランザクションがコミットされるか、その後ロールバックされる際に Oracle は自動的にテンポラリ・テーブルのデータをクリアします。

II. テンポラリーテーブルの作成

1. セッションレベルのテンポラリーテーブル

1). 先に作成し、後からデータを挿入する

Create Global Temporary Table Table_Name (Col1 Type1,Col2 Type2...) On Commit Preserve Rows;

  Insert Into Table_Name Values("","");


2). 作成時に直接データを挿入する

CREATE GLOBAL TEMPORARY TABLE Table_Name ON COMMIT PRESERVE ROWS AS select Col1, Col2 from Query_Table_Name where... ;




2. トランザクションレベルのテンポラリテーブル

1). 先に作成し、後でデータを挿入する

Create Global Temporary Table Table_Name (Col1 Type1,Col2 Type2...) On Commit Delete Rows;

  Insert Into Table_Name Values("","");


2). 作成時に直接データを挿入する

CREATE GLOBAL TEMPORARY TABLE Table_Name ON COMMIT Delete ROWS AS select Col1, Col2 from Query_Table_Name where... ;



III. 一時テーブルを削除する

一時テーブルを作成したセッションが終了していない場合、一時テーブルはまだ使用中であるため、削除することはできません。しかし、セッションが終了した後(セッションレベルの一時テーブルが作成されたコマンドウィンドウを閉じた後)であれば、削除することができます。

Drop Table Table_name;

IV. 削除時のエラー

説明 元のコマンドウィンドウを閉じてから、以下を実行します。 Drop Table Table_name;
エラーの報告です。 ORA-14452: 使用中のテンポラリテーブルのインデックスを作成、変更、または削除しようとした

1. テーブルを空にし、削除する

TRUNCATE TABLE test_table;
drop table test_table;



2. プロセスを終了させ、削除する

SELECT sid, serial# FROM v$session
WHERE sid = (SELECT sid FROM v$lock
WHERE id1 = (SELECT object_id FROM user_objects
WHERE object_name = upper('test_table')));



権限がない場合は認可を実行する

grant select any dictionary to user;

Query the session's sid and serial# to.

その後、プロセスを強制終了してください。

lter system kill session 'sid,serial#';



最後に削除する場合

drop table test_table;

この時点でこの記事の ORCAL テンポラリテーブルの作成と削除に関する記事は以上です。 ORCAL テーブルの作成と削除については、スクリプトハウスの過去の記事を検索していただくか、引き続き以下の関連記事をご覧ください。