Oracle兩種臨時表的建立與使用詳解

2021-08-14 04:35:56 字數 2072 閱讀 1896

oracle資料庫除了可以儲存永久表外,還可以建立臨時表temporary tables。這些臨時表用來儲存乙個會話session的資料,或者儲存在乙個事務中需要的資料。當會話退出或者使用者提交commit和回滾rollback事務的時候,臨時表的資料自動清空,但是臨時表的結構以及元資料還儲存在使用者的資料字典中。

分類:1.會話級臨時表

會話級臨時表是指臨時表中的資料只在會話生命週期之中存在,當使用者退出會話結束的時候,oracle自動清除臨時表中資料。

格式:create global temporary table table_name  

(col1 type1,

col2 type2

...) 

on commit preserve rows;

2.事務級臨時表

事務級臨時表是指臨時表中的資料只在事務生命週期中存在。

create global temporary table table_name  

(col1 type1,

col2 type2

...) 

on commit delete rows; 

當乙個事務結束(commit or rollback),oracle自動清除臨時表中資料。

下面在oracle 10g中演示了臨時表的建立與使用:

1.建立事務級臨時表,插入一條資料,並查詢:

2.執行commit或者rollback操作,臨時表內資料就被清空,但表結構依然存在:

3.建立乙個會話級臨時表,插入一條資料,並查詢:

4..執行commit或者rollback操作,表內資料依然存在,新建乙個命令視窗(相當於開啟了乙個新的會話),表內的資料就查詢不到了:

5.如果建立會話臨時表的會話沒有結束,則無法刪除此臨時表,因為臨時表,還在使用之中,但是結束會話(關閉建立會話級臨時表的命令視窗)後就可以刪除了:

oracle兩種臨時表的建立

臨時表在我們需要儲存一些臨時資料時是非常有用的。臨時表只在當前連線可見,當關閉連線時,會自動刪除表並釋放所有空間。當我們想要進行乙個很複雜或資料量很大的查詢時,我們就可以建立乙個臨時表來儲存,並進行操作 建立臨時表有兩種方式 1 事務級臨時表on commit delete rows當commit的...

Oracle兩種臨時表的建立與使用

oracle資料庫除了可以儲存永久表外,還可以建立臨時表temporary table。這些臨時表用來儲存乙個會話session的資料,或者儲存在乙個事務中需要的資料。當會話退出或者使用者提交commit和回滾rollback事務的時候,臨時表的資料自動清空,但是臨時表的結構以及元資料還儲存在使用者...

Oracle兩種臨時表的建立與使用詳解

oracle資料庫除了可以儲存永久表外,還可以建立臨時表temporary tables。這些臨時表用來儲存乙個會話session的資料,或者儲存在乙個事務中需要的資料。當會話退出或者使用者提交commit和回滾rollback事務的時候,臨時表的資料自動清空,但是臨時表的結構以及元資料還儲存在使用...