一時テーブルと特別一時テーブル

グローバル一時テーブルの作成
ONCOMMIT DELETE ROWS句は、データを削除する必要があること、またはトランザクションが
CREATE GLOBAL TEMPORARY TABLE lh_temp_table(
上記のID NUMBER、
説明VARCHAR2(20)
の最後にセッションをコミットするときに
ON COMMIT DELETEROWSを示します。 ;
ここに画像の説明を挿入します
INSERT INTO lh_temp_table VALUES(1、 'ONE');
ここに画像の説明を挿入します
ここに画像の説明を挿入します
SELECT COUNT()FROMlh_temp_table;
ここに画像の説明を挿入します
送信後にデータはありません。COMMIT
;
ここに画像の説明を挿入します
SELECT COUNT(
)FROM lh_temp_table;
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ON COMMIT PRESERVE ROWS句は、行がその後も存在し続ける必要があることを示します。トランザクションの終了。それらはセッションの終了時にのみ削除されます。
CREATE GLOBAL TEMPORARY TABLE my_temp_table(
id NUMBER、
description VARCHAR2(20)

ON COMMIT PRESERVE ROWS;
ここに画像の説明を挿入します
INSERT INTO my_temp_table VALUES(1、 'ONE');
COMMIT;
ここに画像の説明を挿入します
ここに画像の説明を挿入します
SELECT COUNT()FROM my_temp_table;
ここに画像の説明を挿入します
再接続後、データはありません。SELECT COUNT(
ここに画像の説明を挿入します
ここに画像の説明を挿入します

)FROMmy_temp_table;
ここに画像の説明を挿入します
グローバル一時テーブルなしでデータを表示して元に戻す
DROPTABLE my_temp_table PURGE;
ここに画像の説明を挿入します
CREATE TABLE my_temp_table(
id NUMBER、
description VARCHAR2(20)
);
ここに画像の説明を挿入します
INSERT INTO my_temp_table
WITH data AS(
SELECT 1 AS id
FROM dual
CONNECT BY level <10000

SELECT rownum、TO_CHAR(rownum)
FROM data a、data b
WHERE rownum <= 1000000;
ここに画像の説明を挿入します
挿入されたデータ
ここに画像の説明を挿入します
ここに画像の説明を挿入します
表示する
undoSELECT t.used_ublk、
t.used_urec
FROM v transactiont、v transaction t、vt r a n s a c t i o n t vセッション
sWHERE s.saddr = t.ses_addr
AND s.audsid = SYS_CONTEXT( 'USERENV'、 'SESSIONID');
ここに画像の説明を挿入します
v $ transactionからused_ublk、used_urecを選択します。
ここに画像の説明を挿入します

V $ TRANSACTIONは、システム内のアクティブなトランザクションを一覧表示します。
USED​​_UBLK:
使用されたUNDOブロックの数
USED​​_UREC:使用されたUNDOレコードのSES_ADDR:ユーザーセッションオブジェクトアドレス

创建临時間表
DROPTABLE my_temp_table PURGE;
CREATE GLOBAL TEMPORARY TABLE my_temp_table(
id NUMBER、
description VARCHAR2(20)

ON COMMIT PRESERVE ROWS;
ここに画像の説明を挿入します
INSERT INTOのmy_temp_table
データとは、AS(
IDとして1を選択
デュアルFROM
CONNECT BYレベル<10000

SELECT ROWNUM、TO_CHAR(ROWNUM)
データから、データB
; ROWNUM <= 1000000が
ここに画像の説明を挿入します
ここに画像の説明を挿入します
查看撤消
ここに画像の説明を挿入します
表lh_temp_tableを作成する(
ID番号、
(説明VARCHAR2を20)
);
統計に自動トレースを設定します。
ここに画像の説明を挿入します
INSERT INTO lh_temp_table
WITH data AS(
SELECT 1 AS id
FROM dual
CONNECT BY level <10000

SELECT rownum、TO_CHAR(rownum)
FROM data a、data b
WHERE rownum <= 1000000;

ここに画像の説明を挿入します
ここに画像の説明を挿入します
DROP TABLE lh_temp_table PURGE;
CREATE GLOBAL TEMPORARY TABLE lh_temp_table(
id NUMBER、
description VARCHAR2(20)

ON COMMIT PRESERVE ROWS;
統計に自動トレースを設定します。
ここに画像の説明を挿入します
INSERT INTO lh_temp_table
WITH data AS(
SELECT 1 AS id
FROM dual
CONNECT BY level <10000

SELECT rownum、TO_CHAR(rownum)
FROM data a、data b
WHERE rownum <= 1000000;
ここに画像の説明を挿入します
ここに画像の説明を挿入します

専用の一時テーブル

専用の一時テーブルを作成するときに使用されるプレフィックスORAPTT ∗ ∗ ONCOMMITDROPDEFINITIO N:トランザクションの終了時またはセッションの終了時にテーブルを削除します∗ ∗ CREATEPRIVATETEMPORAR YTABLE ora PTT ** ON COMMIT DROP DEFINITION:でテーブルを削除しますトランザクションの終了時またはセッションの終了時** CREATE PRIVATE TEMPORARY TABLE oraP T T* O N C O M M I T D R&LT O P D E FでのI N I T I O N どのトラフィック接合ビームとき又は次いで結び目ビームの場合削除を除いテーブルC R E A T E P R I V A T E T E M P O R A R Y T A B L E o r a ptt_lh_temp_table(
id NUMBER、
description VARCHAR2(20)

ON COMMIT DROP DEFINITION;
ここに画像の説明を挿入します
INSERT INTO ora $ ptt_lh_temp_table VALUES(1、 'ONE');
ここに画像の説明を挿入します

SELECT COUNT(*)FROM ora $ ptt_lh_temp_table;
ここに画像の説明を挿入します
コミット;
ここに画像の説明を挿入します

SELECT COUNT(*)FROM ora $ ptt_lh_temp_table;
ここに画像の説明を挿入します

ON COMMIT PRESERVE DEFINITION:
CREATE PRIVATE TEMPORARY TABLE ora $ ptt_zs_temp_table(
id NUMBER、
description VARCHAR2(20)

ON COMMIT PRESERVEDEFINITIONを削除します。
ここに画像の説明を挿入します

INSERT INTO ora $ ptt_zs_temp_table VALUES(1、 'ONE');
ここに画像の説明を挿入します

SELECT COUNT(*)FROM ora $ ptt_zs_temp_table;
ここに画像の説明を挿入します
select * from USER_PRIVATE_TEMP_TABLES;
ここに画像の説明を挿入します
送信後も
一時テーブルデータのCOMMITを表示できます;
ここに画像の説明を挿入します
切断後、接続します

SELECT COUNT(*)FROM ora $ ptt_zs_temp_table;
ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/weixin_39568073/article/details/115027987