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

2021-09-29 02:35:28 字數 1396 閱讀 5012

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

分類:

格式:create global temporary table 臨時表名 (列名 屬性) on commit delete rows;-建立事務級臨時表

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

格式:create global temporary table 臨時表名 (列名 屬性) on commit preserve rows;---建立會話級臨時表

使用說明:

1、事務級臨時表:

create global temporary table ***_temp (name varchar2(20)) on commit delete rows;--建立事務級臨時表

insert into ***_temp values('yan言');--新增一條資料

select * from ***_temp;

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

--如圖:不提交,表資料可以查詢的到

圖1--提交了以後,資料就被清空,但表結構依然存在:

圖2

2、會話級臨時表:

create global temporary table session_temp_*** (username varchar2(12)) on commit preserve rows;---建立會話級臨時表

insert into session_temp_*** values('使用者yanyan');--新增一條資料

select * from session_temp_***;

drop table session_temp_***;--刪除臨時表,在這裡無法刪除成功,因為建立會話臨時表的會話沒有結束

圖3--結束會話(關閉命令視窗)後就可以刪除了

oracle兩種臨時表的建立

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

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

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

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

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